在Python的assertListEqual()
模块中使用unittest
时遇到问题。
当我执行self.assertListEqual(expected, result)
时,它会正确比较项目。但是,当有一点差异时,我就会感到与众不同。在该差异中,除了绝对不同的项目之外,我还得到很多类似的代码:
问题是:仅看到真正不同的元素,我该如何摆脱呢?
要生成expected
时间戳,我使用dateutil.parser.parse
和Django的ORM。
下面是显示以下内容的示例代码:
from datetime import datetime
import unittest
import pytz
from dateutil.parser import parse
class Test(unittest.TestCase):
def test_foo(self):
expected = [{
'value': 1,
'timestamp': datetime(2018, 1, 1, 0, 0, 0, tzinfo=pytz.utc),
}]
result = [{
'value': 0,
'timestamp': parse('2018-01-01T00:00:00Z'),
}]
self.assertListEqual(expected, result)
if __name__ == '__main__':
unittest.main()
答案 0 :(得分:1)
尝试一下:
from datetime import datetime
import unittest
import pytz
import dateutil
from dateutil.parser import parse
class Test(unittest.TestCase):
def test_foo(self):
expected = [{
'value': 1,
'timestamp': datetime(2018, 1, 1, 0, 0, 0, tzinfo=dateutil.tz.tz.tzutc()),
}]
result = [{
'value': 1,
'timestamp': parse('2018-01-01T00:00:00Z'),
}]
self.assertListEqual(expected, result)
if __name__ == '__main__':
unittest.main()