如何在Python单元测试中获取并声明和REST API?

时间:2018-10-22 11:12:56

标签: python-2.7 list dictionary python-unittest

尝试获取和声明REST API时,抛出“ TypeError”。以下是我正在运行的代码

def test_get_action(self):         action_id = self._get_action_id()         “”“获取操作,成功,响应状态为200”“”         resp = self.test_client.get_action(action_id)         self.assertEqual(resp.response ['status'],'200')         self.assertEqual(resp.values()[0] [0] ['action_id'],action_id)

我看到的错误是“ TypeError:'dict_values'对象不支持索引”

进一步调查: *在Python 2.7中运行此测试,并看到上述错误 *我对代码进行了如下更改,但无法得出此代码。

  • self.assertListEqual(resp.values()[0] [0] ['action_id'],action_id)
  • 自我。 assertSequenceEqual(resp.values()[0] [0] ['action_id'],action_id)

我是Python和unittest的新手,请帮忙。

谢谢。

1 个答案:

答案 0 :(得分:0)

错误消息表明resp.values()返回的是dict_values对象而不是列表。

尝试在对resp.values()的呼叫中包装对list()的呼叫:

self.assertEqual(list(resp.values())[0][0]['action_id'], action_id)