summaryrefslogtreecommitdiffstats
path: root/tests/unit/test_timeutils.py
diff options
context:
space:
mode:
authorZhongyue Luo <lzyeval@gmail.com>2012-06-06 17:51:07 +0800
committerZhongyue Luo <lzyeval@gmail.com>2012-06-06 21:33:01 +0800
commite67d7775a7a3347c795a5ff3ed8166f850b8598e (patch)
tree40200e63126477e7e2e46488dc596d8205db3565 /tests/unit/test_timeutils.py
parentc1f45745e240f9cc0d4e6522a71a895471aa94b3 (diff)
Add nova time util functions to timeutils
Fixes bug #1009410 1. Add the following functions from nova/utils.py - strtime - parse_strtime - is_older_than - utcnow_ts - advance_time_delta - advance_time_seconds 2. Write unittests in tests/unit/test_timeutils.py Change-Id: Ie0bba90833e2ed31bb5ab867a7c1a76a9901cacb
Diffstat (limited to 'tests/unit/test_timeutils.py')
-rw-r--r--tests/unit/test_timeutils.py64
1 files changed, 54 insertions, 10 deletions
diff --git a/tests/unit/test_timeutils.py b/tests/unit/test_timeutils.py
index 59a5032..ba68235 100644
--- a/tests/unit/test_timeutils.py
+++ b/tests/unit/test_timeutils.py
@@ -26,21 +26,55 @@ from openstack.common import timeutils
class TimeUtilsTest(unittest.TestCase):
- def test_isotime(self):
- skynet_self_aware_time_str = '1997-08-29T06:14:00Z'
- skynet_self_aware_time = datetime.datetime(1997, 8, 29, 6, 14, 0,
+ def setUp(self):
+ utc_timezone = iso8601.iso8601.UTC
+ self.skynet_self_aware_time_str = '1997-08-29T06:14:00Z'
+ self.skynet_self_aware_time = datetime.datetime(1997, 8, 29, 6, 14, 0,
+ tzinfo=utc_timezone)
+ self.one_minute_before = datetime.datetime(1997, 8, 29, 6, 13, 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)
+
+ def tearDown(self):
+ timeutils.clear_time_override()
+
+ def test_isotime(self):
with mock.patch('datetime.datetime') as datetime_mock:
- datetime_mock.utcnow.return_value = skynet_self_aware_time
+ datetime_mock.utcnow.return_value = self.skynet_self_aware_time
dt = timeutils.isotime()
- self.assertEqual(dt, skynet_self_aware_time_str)
+ self.assertEqual(dt, self.skynet_self_aware_time_str)
def test_parse_isotime(self):
- skynet_self_aware_time_str = '1997-08-29T06:14:00Z'
- skynet_self_aware_time = datetime.datetime(1997, 8, 29, 6, 14, 0,
- tzinfo=iso8601.iso8601.UTC)
- self.assertEqual(skynet_self_aware_time,
- timeutils.parse_isotime(skynet_self_aware_time_str))
+ expect = timeutils.parse_isotime(self.skynet_self_aware_time_str)
+ self.assertEqual(self.skynet_self_aware_time, expect)
+
+ def test_strtime(self):
+ expect = timeutils.strtime(self.skynet_self_aware_time_perfect)
+ self.assertEqual(self.skynet_self_aware_time_perfect_str, expect)
+
+ def test_parse_strtime(self):
+ perfect_time_format = self.skynet_self_aware_time_perfect_str
+ expect = timeutils.parse_strtime(perfect_time_format)
+ self.assertEqual(self.skynet_self_aware_time_perfect, expect)
+
+ def test_is_older_than(self):
+ with mock.patch('datetime.datetime') as datetime_mock:
+ datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ expect_true = timeutils.is_older_than(self.one_minute_before, 59)
+ self.assertTrue(expect_true)
+ expect_false = timeutils.is_older_than(self.one_minute_before, 60)
+ self.assertFalse(expect_false)
+ expect_false = timeutils.is_older_than(self.one_minute_before, 61)
+ self.assertFalse(expect_false)
+
+ def test_utcnow_ts(self):
+ skynet_self_aware_timestamp = 872806440.0
+ with mock.patch('datetime.datetime') as datetime_mock:
+ datetime_mock.utcnow.return_value = self.skynet_self_aware_time
+ ts = timeutils.utcnow_ts()
+ self.assertEqual(ts, skynet_self_aware_timestamp)
def test_utcnow(self):
timeutils.set_time_override(mock.sentinel.utcnow)
@@ -51,6 +85,16 @@ class TimeUtilsTest(unittest.TestCase):
self.assertTrue(timeutils.utcnow())
+ def test_advance_time_delta(self):
+ timeutils.set_time_override(self.one_minute_before)
+ timeutils.advance_time_delta(datetime.timedelta(seconds=60))
+ self.assertEqual(timeutils.utcnow(), self.skynet_self_aware_time)
+
+ def test_advance_time_seconds(self):
+ timeutils.set_time_override(self.one_minute_before)
+ timeutils.advance_time_seconds(60)
+ self.assertEqual(timeutils.utcnow(), self.skynet_self_aware_time)
+
class TestIso8601Time(unittest.TestCase):