diff options
| author | Zhongyue Luo <lzyeval@gmail.com> | 2012-06-06 17:51:07 +0800 |
|---|---|---|
| committer | Zhongyue Luo <lzyeval@gmail.com> | 2012-06-06 21:33:01 +0800 |
| commit | e67d7775a7a3347c795a5ff3ed8166f850b8598e (patch) | |
| tree | 40200e63126477e7e2e46488dc596d8205db3565 /tests/unit/test_timeutils.py | |
| parent | c1f45745e240f9cc0d4e6522a71a895471aa94b3 (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.py | 64 |
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): |
