Comment 0 for bug 1747575

Revision history for this message
John L. Villalovos (happycamp) wrote :

So the move from iso8601===0.1.11 to iso8601===0.1.12 broke the unit tests in oslo.utils

iso8601 used to do: from datetime import datetime ...

But now they do: import iso8601. And then use datetime.datetime()
Unfortunately the unit tests mock datetime.datetime() and now are mocking the one in iso8601. This causes a failure in the unit tests.

The issue is in these two locations:
https://github.com/openstack/oslo.utils/blob/master/oslo_utils/tests/test_timeutils.py#L92
https://github.com/openstack/oslo.utils/blob/master/oslo_utils/tests/test_timeutils.py#L123

The error looks like this:

FAIL: oslo_utils.tests.test_timeutils.TimeUtilsTest.test_is_newer_than_str
----------------------------------------------------------------------
Traceback (most recent call last):
  File "oslo_utils/tests/test_timeutils.py", line 140, in test_is_newer_than_str
    self._test_is_newer_than(timeutils.strtime)
  File "oslo_utils/tests/test_timeutils.py", line 127, in _test_is_newer_than
    59)
  File "oslo_utils/timeutils.py", line 135, in is_newer_than
    return after - utcnow() > datetime.timedelta(seconds=seconds)
TypeError: can't compare datetime.timedelta to MagicMock
======================================================================
FAIL: oslo_utils.tests.test_timeutils.TimeUtilsTest.test_is_older_than_str
----------------------------------------------------------------------
Traceback (most recent call last):
  File "oslo_utils/tests/test_timeutils.py", line 109, in test_is_older_than_str
    self._test_is_older_than(timeutils.strtime)
  File "oslo_utils/tests/test_timeutils.py", line 96, in _test_is_older_than
    59)
  File "oslo_utils/timeutils.py", line 120, in is_older_than
    return utcnow() - before > datetime.timedelta(seconds=seconds)
TypeError: can't compare datetime.timedelta to MagicMock