gpt4 book ai didi

Python 单元测试模块差异考虑 `tzinfo=` 和 `tzinfo=tzutc()` 不相等

转载 作者:行者123 更新时间:2023-11-28 20:36:25 27 4
gpt4 key购买 nike

我在 Python 的 unittest 模块中使用 assertListEqual() 时遇到问题。

当我执行 self.assertListEqual(expected, result) 时,它会正确比较项目。但是当有一点不同时,我就会得到一个差异。在那个差异中,除了明显不同的项目外,我得到很多行,例如:

enter image description here

问题是:我怎样才能摆脱它,只看到真正不同的元素?

为了生成预期的时间戳,我使用了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()

最佳答案

试试这个:

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()

关于Python 单元测试模块差异考虑 `tzinfo=<UTC>` 和 `tzinfo=tzutc()` 不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52717834/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com