1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/usr/bin/env vpython3
- # 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.assertEqual(expected, result)
- self.assertEqual(datetime.timedelta(hours=11), result.utcoffset())
- self.assertEqual('+1100', result.tzname())
- self.assertEqual(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.assertEqual(expected, result)
- self.assertEqual(datetime.timedelta(hours=-8), result.utcoffset())
- self.assertEqual('-0800', result.tzname())
- self.assertEqual(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.assertEqual(expected, result)
- self.assertEqual(datetime.timedelta(hours=0), result.utcoffset())
- self.assertEqual('UTC', result.tzname())
- self.assertEqual(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.assertEqual('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.assertEqual('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')))
|