Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(389)

Unified Diff: tests/git_dates_test.py

Issue 1559943003: Added git hyper-blame, a tool that skips unwanted commits in git blame. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Respond to review. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/git_common_test.py ('k') | tests/git_hyper_blame_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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')))
« no previous file with comments | « tests/git_common_test.py ('k') | tests/git_hyper_blame_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698