diff --git a/oslo_utils/tests/test_timeutils.py b/oslo_utils/tests/test_timeutils.py index 4e24adbf..1178f1d0 100644 --- a/oslo_utils/tests/test_timeutils.py +++ b/oslo_utils/tests/test_timeutils.py @@ -203,6 +203,12 @@ class TimeUtilsTest(test_base.BaseTestCase): ts = calendar.timegm(utcnow.timetuple()) self.assertEqual(iso, timeutils.iso8601_from_timestamp(ts)) + def test_iso8601_from_timestamp_ms(self): + ts = timeutils.utcnow_ts(microsecond=True) + utcnow = datetime.datetime.utcfromtimestamp(ts) + iso = timeutils.isotime(utcnow, subsecond=True) + self.assertEqual(iso, timeutils.iso8601_from_timestamp(ts, True)) + def test_is_soon(self): expires = timeutils.utcnow() + datetime.timedelta(minutes=5) self.assertFalse(timeutils.is_soon(expires, 120)) diff --git a/oslo_utils/timeutils.py b/oslo_utils/timeutils.py index adf1abd4..c7c3d622 100644 --- a/oslo_utils/timeutils.py +++ b/oslo_utils/timeutils.py @@ -130,9 +130,9 @@ def utcnow(): return datetime.datetime.utcnow() -def iso8601_from_timestamp(timestamp): +def iso8601_from_timestamp(timestamp, microsecond=False): """Returns an iso8601 formatted date from timestamp.""" - return isotime(datetime.datetime.utcfromtimestamp(timestamp)) + return isotime(datetime.datetime.utcfromtimestamp(timestamp), microsecond) utcnow.override_time = None