summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSirisha Devineni <sirisha_devineni@persistent.co.in>2012-10-09 17:33:35 +0530
committerSirisha Devineni <sirisha_devineni@persistent.co.in>2012-10-09 17:53:23 +0530
commit85bed287461036745afe6a4c623e546c52641b1e (patch)
tree6527b03a83b00cd83eb1effa8691cea600f21383
parent355ca27471218012a7604b751b1ffbbd2d001f05 (diff)
downloadoslo-85bed287461036745afe6a4c623e546c52641b1e.tar.gz
oslo-85bed287461036745afe6a4c623e546c52641b1e.tar.xz
oslo-85bed287461036745afe6a4c623e546c52641b1e.zip
Added is_newer_than function
Added is_newer_than function to compare if the provided time is newer than current time for specified number of seconds Fixes bug 1036343 Change-Id: Ic133b0e7e2337b6b0fdad244ded6a93f8db48379
-rw-r--r--openstack/common/timeutils.py5
-rw-r--r--tests/unit/test_timeutils.py12
2 files changed, 17 insertions, 0 deletions
diff --git a/openstack/common/timeutils.py b/openstack/common/timeutils.py
index 93b34fc..8600439 100644
--- a/openstack/common/timeutils.py
+++ b/openstack/common/timeutils.py
@@ -74,6 +74,11 @@ def is_older_than(before, seconds):
return utcnow() - before > datetime.timedelta(seconds=seconds)
+def is_newer_than(after, seconds):
+ """Return True if after is newer than seconds."""
+ return after - utcnow() > datetime.timedelta(seconds=seconds)
+
+
def utcnow_ts():
"""Timestamp version of our utcnow function."""
return calendar.timegm(utcnow().timetuple())
diff --git a/tests/unit/test_timeutils.py b/tests/unit/test_timeutils.py
index 7e6ae72..38ac3ed 100644
--- a/tests/unit/test_timeutils.py
+++ b/tests/unit/test_timeutils.py
@@ -33,6 +33,8 @@ class TimeUtilsTest(unittest.TestCase):
tzinfo=utc_timezone)
self.one_minute_before = datetime.datetime(1997, 8, 29, 6, 13, 0,
tzinfo=iso8601.iso8601.UTC)
+ self.one_minute_after = datetime.datetime(1997, 8, 29, 6, 15, 0,
+ tzinfo=iso8601.iso8601.UTC)
self.skynet_self_aware_time_perfect_str = '1997-08-29T06:14:00.000000'
self.skynet_self_aware_time_perfect = datetime.datetime(1997, 8, 29,
6, 14, 0)
@@ -75,6 +77,16 @@ class TimeUtilsTest(unittest.TestCase):
expect_false = timeutils.is_older_than(self.one_minute_before, 61)
self.assertFalse(expect_false)
+ def test_is_newer_than(self):
+ with mock.patch('datetime.datetime') as datetime_mock:
+ datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ expect_true = timeutils.is_newer_than(self.one_minute_after, 59)
+ self.assertTrue(expect_true)
+ expect_false = timeutils.is_newer_than(self.one_minute_after, 60)
+ self.assertFalse(expect_false)
+ expect_false = timeutils.is_newer_than(self.one_minute_after, 61)
+ self.assertFalse(expect_false)
+
def test_utcnow_ts(self):
skynet_self_aware_timestamp = 872835240
dt = datetime.datetime.utcfromtimestamp(skynet_self_aware_timestamp)