Index: tests/git_dates_test.py |
diff --git a/tests/git_dates_test.py b/tests/git_dates_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..d1f660203c83a9f1801618aa7448883508ea40e9 |
--- /dev/null |
+++ b/tests/git_dates_test.py |
@@ -0,0 +1,78 @@ |
+#!/usr/bin/env python |
+# Copyright 2016 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+"""Tests for git_dates.""" |
+ |
+import datetime |
+import os |
+import sys |
+import unittest |
+ |
+DEPOT_TOOLS_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
+sys.path.insert(0, DEPOT_TOOLS_ROOT) |
+ |
+from testing_support import coverage_utils |
+ |
+ |
+class GitDatesTestBase(unittest.TestCase): |
+ @classmethod |
+ def setUpClass(cls): |
+ super(GitDatesTestBase, cls).setUpClass() |
+ import git_dates |
+ cls.git_dates = git_dates |
+ |
+ |
+class GitDatesTest(GitDatesTestBase): |
+ def testTimestampOffsetToDatetime(self): |
+ # 2016-01-25 06:25:43 UTC |
+ timestamp = 1453703143 |
+ |
+ offset = '+1100' |
+ expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=11), '') |
+ expected = datetime.datetime(2016, 1, 25, 17, 25, 43, tzinfo=expected_tz) |
+ result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset) |
+ self.assertEquals(expected, result) |
+ self.assertEquals(datetime.timedelta(hours=11), result.utcoffset()) |
+ self.assertEquals('+1100', result.tzname()) |
+ self.assertEquals(datetime.timedelta(0), result.dst()) |
+ |
+ offset = '-0800' |
+ expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=-8), '') |
+ expected = datetime.datetime(2016, 1, 24, 22, 25, 43, tzinfo=expected_tz) |
+ result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset) |
+ self.assertEquals(expected, result) |
+ self.assertEquals(datetime.timedelta(hours=-8), result.utcoffset()) |
+ self.assertEquals('-0800', result.tzname()) |
+ self.assertEquals(datetime.timedelta(0), result.dst()) |
+ |
+ # Invalid offset. |
+ offset = '-08xx' |
+ expected_tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=0), '') |
+ expected = datetime.datetime(2016, 1, 25, 6, 25, 43, tzinfo=expected_tz) |
+ result = self.git_dates.timestamp_offset_to_datetime(timestamp, offset) |
+ self.assertEquals(expected, result) |
+ self.assertEquals(datetime.timedelta(hours=0), result.utcoffset()) |
+ self.assertEquals('UTC', result.tzname()) |
+ self.assertEquals(datetime.timedelta(0), result.dst()) |
+ |
+ # Offset out of range. |
+ offset = '+2400' |
+ self.assertRaises(ValueError, self.git_dates.timestamp_offset_to_datetime, |
+ timestamp, offset) |
+ |
+ def testDatetimeString(self): |
+ tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=11), '') |
+ dt = datetime.datetime(2016, 1, 25, 17, 25, 43, tzinfo=tz) |
+ self.assertEquals('2016-01-25 17:25:43 +1100', |
+ self.git_dates.datetime_string(dt)) |
+ |
+ tz = self.git_dates.FixedOffsetTZ(datetime.timedelta(hours=-8), '') |
+ dt = datetime.datetime(2016, 1, 24, 22, 25, 43, tzinfo=tz) |
+ self.assertEquals('2016-01-24 22:25:43 -0800', |
+ self.git_dates.datetime_string(dt)) |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(coverage_utils.covered_main( |
+ os.path.join(DEPOT_TOOLS_ROOT, 'git_dates.py'))) |