断言日期时间问题

assertion of date time issue

我正在对此进行 pytest,我看到中间有一个 T 导致我出现问题,这是类型问题,我已将其更改为日期时间,因为它的类型仍然存在此问题。

assert model_setup.start_model_duration == start_model_duration
E       AssertionError: assert datetime.datetime(2019, 6, 2, 15, 4, 5) == '2019-06-02T15:04:05'
E         +datetime.datetime(2019, 6, 2, 15, 4, 5)
E         -'2019-06-02T15:04:05'

所以后来我将这两个作为字符串,但中间的 T 仍然导致问题

assert str(model_setup.start_model_duration) == str(start_model_duration)
E       AssertionError: assert '2019-06-02 15:04:05' == '2019-06-02T15:04:05'
E         - 2019-06-02T15:04:05
E         ?           ^
E         + 2019-06-02 15:04:05
E         ?           ^

您看到的是异构格式:

>>> dt = datetime.datetime(2019, 6, 2, 15, 4, 5)
>>> dt.isoformat()
'2019-06-02T15:04:05'

因此您可以使用其中之一:

# convert the datetime to a string
assert model_setup.start_model_duration.isoformat() == start_model_duration

# convert the string to a datetime
assert model_setup.start_model_duration == datetime.fromisoformat(start_model_duration)