我试图添加一个mock参数,但我不知道哪里出错了
在这个方法中,我试图模拟“klass”,它基本上表示有一个名为ClassPage的类,它有不同的值(没有方法)
class GrapheneHelper():
@staticmethod
def convert_time_field(klass, field, default=None):
time = GrapheneHelper.get_json_field(klass, field, default)
if time is None:
return None
else:
return iso8601.parse_date(time)
这是我修补类页的测试:
@patch('gql.pages.content_page.ClassPage')
def test_convert_time_field(self, mock_klass):
""" Return YYYY-MM-DDTHH:MM:FF in iso8601 format """
mock_klass.json = {'time_field': '2017-09-18T23:09:33'}
expected_time = iso8601.parse_date('2017-09-18 23:09:33')
self.assertEqual(GrapheneHelper.convert_time_field(mock_klass, field='time_field', default=None), 'expected_time')
我得到的错误:ParseError: Expecting a string <MagicMock name='ClassPage.json.get()' id='4644743312'>
我觉得我真的很接近了,但我还没能找出问题所在。我试过MagicMock,读过文档,甚至一些博客,但运气都不好。如有任何建议,将不胜感激
根据你所给予的,我认为这是正在发生的:
GrapheneHelper.get_json_field
调用函数ClassPage.json.get()
所以模拟
get()
函数的返回值:相关问题 更多 >
编程相关推荐