Files
chromium_depot_tools/tests/git_dates_test.py
Mike Frysinger 677616322a tests: switch to 4 space indent
Reformat this dir by itself to help merging with conflicts with other CLs.

Reformatted using:
parallel ./yapf -i -- tests/*.py
~/chromiumos/chromite/contrib/reflow_overlong_comments tests/*.py

These files still had lines (strings) that were too long, so the pylint
warnings were suppressed with a TODO.
tests/bot_update_coverage_test.py
tests/cipd_bootstrap_test.py
tests/gclient_eval_unittest.py
tests/gclient_git_smoketest.py
tests/gclient_scm_test.py
tests/gclient_smoketest.py
tests/gclient_test.py
tests/gclient_transitions_smoketest.py
tests/gclient_utils_test.py
tests/git_cl_test.py
tests/git_hyper_blame_test.py
tests/git_rebase_update_test.py
tests/lockfile_test.py
tests/metrics_test.py
tests/presubmit_canned_checks_test.py
tests/presubmit_unittest.py
tests/roll_dep_test.py

Change-Id: I8fed04b4ba81d54b8f45da612213aad27a9e1a2c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/4842592
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Mike Frysinger <vapier@chromium.org>
2023-09-05 20:24:16 +00:00

96 lines
3.7 KiB
Python
Executable File

#!/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')))