| OLD | NEW |
| (Empty) |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import mock | |
| 6 import unittest | |
| 7 | |
| 8 from lib import time_util | |
| 9 from datetime import datetime | |
| 10 from datetime import timedelta | |
| 11 | |
| 12 | |
| 13 class DiffTest(unittest.TestCase): | |
| 14 def testRemoveMicrosecondsFromDelta(self): | |
| 15 date1 = datetime(2016, 5, 1, 1, 1, 1, 1) | |
| 16 date2 = datetime(2016, 5, 1, 1, 1, 1, 2) | |
| 17 delta = date2 - date1 | |
| 18 | |
| 19 self.assertEqual( | |
| 20 time_util.RemoveMicrosecondsFromDelta(delta).microseconds, | |
| 21 0) | |
| 22 | |
| 23 def testFormatTimedelta(self): | |
| 24 self.assertIsNone(time_util.FormatTimedelta(None)) | |
| 25 self.assertEqual(time_util.FormatTimedelta(timedelta(0, 1)), | |
| 26 '00:00:01') | |
| 27 self.assertEqual(time_util.FormatTimedelta(timedelta(0, 60)), | |
| 28 '00:01:00') | |
| 29 self.assertEqual(time_util.FormatTimedelta(timedelta(0, 3600)), | |
| 30 '01:00:00') | |
| 31 self.assertEqual(time_util.FormatTimedelta(timedelta(0, 0, 1)), | |
| 32 '00:00:00') | |
| 33 | |
| 34 def testFormatDatetime(self): | |
| 35 self.assertIsNone(time_util.FormatDatetime(None)) | |
| 36 self.assertEqual( | |
| 37 time_util.FormatDatetime(datetime(2016, 1, 2, 1, 2, 3)), | |
| 38 '2016-01-02 01:02:03 UTC') | |
| 39 | |
| 40 @mock.patch('lib.time_util.pytz') | |
| 41 def testGetDateTimeInTimezoneWithGivenDatetime(self, mocked_pytz_module): | |
| 42 mocked_datetime = mock.MagicMock() | |
| 43 mocked_datetime.astimezone.return_value = 'expected' | |
| 44 | |
| 45 self.assertEqual('expected', | |
| 46 time_util.GetDatetimeInTimezone('PST', mocked_datetime)) | |
| 47 mocked_pytz_module.timezone.assert_called_with('PST') | |
| 48 | |
| 49 def testFormatDuration(self): | |
| 50 date1 = datetime(2016, 5, 1, 1, 1, 1) | |
| 51 date2 = datetime(2016, 5, 1, 1, 2, 1) | |
| 52 self.assertIsNone(time_util.FormatDuration(None, date1)) | |
| 53 self.assertIsNone(time_util.FormatDuration(date1, None)) | |
| 54 self.assertEqual('00:01:00', time_util.FormatDuration(date1, date2)) | |
| 55 | |
| 56 def testTimeZoneInfo(self): | |
| 57 naive_time = datetime(2016, 9, 1, 10, 0, 0) | |
| 58 | |
| 59 tz = time_util.TimeZoneInfo('+0800') | |
| 60 self.assertEqual(tz.LocalToUTC(naive_time), datetime(2016, 9, 1, 2, 0, 0)) | |
| 61 | |
| 62 tz_negative = time_util.TimeZoneInfo('-0700') | |
| 63 self.assertEqual(tz_negative.LocalToUTC(naive_time), | |
| 64 datetime(2016, 9, 1, 17, 0, 0)) | |
| OLD | NEW |