Python-3.12: do not use datetime.datetime.utcnow()

This is deprecated in the favor of:
  datetime.datetime.now(datetime.timezone.utc)

In order to return a ``datetime.datetime`` object without the TZ
zone defined, the ``tzinfo`` member is deleted. That allows the
addition/substraction from offset-naive ``datetime.datetime`` objects.

Change-Id: Id345167e71bf576ec383b9d700f222343b08b249
This commit is contained in:
Rodolfo Alonso Hernandez 2023-08-22 17:24:42 +00:00 committed by Rodolfo Alonso
parent 4c4c4e3c1b
commit 59f3a0dba2
2 changed files with 7 additions and 5 deletions

View File

@ -66,7 +66,7 @@ class TimeUtilsTest(test_base.BaseTestCase):
@mock.patch('datetime.datetime', wraps=datetime.datetime)
def _test_is_older_than(self, fn, datetime_mock):
datetime_mock.utcnow.return_value = self.skynet_self_aware_time
datetime_mock.now.return_value = self.skynet_self_aware_time
expect_true = timeutils.is_older_than(fn(self.one_minute_before), 59)
self.assertTrue(expect_true)
expect_false = timeutils.is_older_than(fn(self.one_minute_before), 60)
@ -89,7 +89,7 @@ class TimeUtilsTest(test_base.BaseTestCase):
@mock.patch('datetime.datetime', wraps=datetime.datetime)
def _test_is_newer_than(self, fn, datetime_mock):
datetime_mock.utcnow.return_value = self.skynet_self_aware_time
datetime_mock.now.return_value = self.skynet_self_aware_time
expect_true = timeutils.is_newer_than(fn(self.one_minute_after),
59)
self.assertTrue(expect_true)
@ -202,7 +202,7 @@ class TimeUtilsTest(test_base.BaseTestCase):
self.assertTrue(timeutils.is_soon(expires, 600))
with mock.patch('datetime.datetime') as datetime_mock:
datetime_mock.utcnow.return_value = self.skynet_self_aware_time
datetime_mock.now.return_value = self.skynet_self_aware_time
expires = timeutils.utcnow()
self.assertTrue(timeutils.is_soon(expires, 0))

View File

@ -137,7 +137,7 @@ def utcnow(with_timezone=False):
return utcnow.override_time
if with_timezone:
return datetime.datetime.now(tz=iso8601.iso8601.UTC)
return datetime.datetime.utcnow()
return datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
utcnow.override_time = None
@ -153,7 +153,9 @@ def set_time_override(override_time=None):
:param override_time: datetime instance or list thereof. If not
given, defaults to the current UTC time.
"""
utcnow.override_time = override_time or datetime.datetime.utcnow()
utcnow.override_time = (
override_time or
datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None))
def advance_time_delta(timedelta):