diff options
Diffstat (limited to 'Lib/test/datetimetester.py')
| -rw-r--r-- | Lib/test/datetimetester.py | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/Lib/test/datetimetester.py b/Lib/test/datetimetester.py index 22008884b5..29b70e1a8a 100644 --- a/Lib/test/datetimetester.py +++ b/Lib/test/datetimetester.py @@ -255,14 +255,15 @@ class TestTimeZone(unittest.TestCase): self.assertEqual(timezone.min.utcoffset(None), -limit) self.assertEqual(timezone.max.utcoffset(None), limit) - def test_constructor(self): self.assertIs(timezone.utc, timezone(timedelta(0))) self.assertIsNot(timezone.utc, timezone(timedelta(0), 'UTC')) self.assertEqual(timezone.utc, timezone(timedelta(0), 'UTC')) + for subminute in [timedelta(microseconds=1), timedelta(seconds=1)]: + tz = timezone(subminute) + self.assertNotEqual(tz.utcoffset(None) % timedelta(minutes=1), 0) # invalid offsets - for invalid in [timedelta(microseconds=1), timedelta(1, 1), - timedelta(seconds=1), timedelta(1), -timedelta(1)]: + for invalid in [timedelta(1, 1), timedelta(1)]: self.assertRaises(ValueError, timezone, invalid) self.assertRaises(ValueError, timezone, -invalid) @@ -301,6 +302,15 @@ class TestTimeZone(unittest.TestCase): self.assertEqual('UTC-00:01', timezone(timedelta(minutes=-1)).tzname(None)) self.assertEqual('XYZ', timezone(-5 * HOUR, 'XYZ').tzname(None)) + # Sub-minute offsets: + self.assertEqual('UTC+01:06:40', timezone(timedelta(0, 4000)).tzname(None)) + self.assertEqual('UTC-01:06:40', + timezone(-timedelta(0, 4000)).tzname(None)) + self.assertEqual('UTC+01:06:40.000001', + timezone(timedelta(0, 4000, 1)).tzname(None)) + self.assertEqual('UTC-01:06:40.000001', + timezone(-timedelta(0, 4000, 1)).tzname(None)) + with self.assertRaises(TypeError): self.EST.tzname('') with self.assertRaises(TypeError): self.EST.tzname(5) @@ -2152,6 +2162,9 @@ class TestDateTime(TestDate): t = self.theclass(2004, 12, 31, 6, 22, 33, 47) self.assertEqual(t.strftime("%m %d %y %f %S %M %H %j"), "12 31 04 000047 33 22 06 366") + tz = timezone(-timedelta(hours=2, seconds=33, microseconds=123)) + t = t.replace(tzinfo=tz) + self.assertEqual(t.strftime("%z"), "-020033.000123") def test_extract(self): dt = self.theclass(2002, 3, 4, 18, 45, 3, 1234) @@ -2717,8 +2730,8 @@ class TZInfoBase: def utcoffset(self, dt): return timedelta(microseconds=61) def dst(self, dt): return timedelta(microseconds=-81) t = cls(1, 1, 1, tzinfo=C7()) - self.assertRaises(ValueError, t.utcoffset) - self.assertRaises(ValueError, t.dst) + self.assertEqual(t.utcoffset(), timedelta(microseconds=61)) + self.assertEqual(t.dst(), timedelta(microseconds=-81)) def test_aware_compare(self): cls = self.theclass @@ -4297,7 +4310,6 @@ class TestLocalTimeDisambiguation(unittest.TestCase): self.assertEqual(gdt.strftime("%c %Z"), 'Mon Jun 23 22:00:00 1941 UTC') - def test_constructors(self): t = time(0, fold=1) dt = datetime(1, 1, 1, fold=1) @@ -4372,7 +4384,6 @@ class TestLocalTimeDisambiguation(unittest.TestCase): self.assertEqual(t0.fold, 0) self.assertEqual(t1.fold, 1) - @support.run_with_tz('EST+05EDT,M3.2.0,M11.1.0') def test_timestamp(self): dt0 = datetime(2014, 11, 2, 1, 30) @@ -4390,7 +4401,6 @@ class TestLocalTimeDisambiguation(unittest.TestCase): s1 = t.replace(fold=1).timestamp() self.assertEqual(s0 + 1800, s1) - @support.run_with_tz('EST+05EDT,M3.2.0,M11.1.0') def test_astimezone(self): dt0 = datetime(2014, 11, 2, 1, 30) @@ -4406,7 +4416,6 @@ class TestLocalTimeDisambiguation(unittest.TestCase): self.assertEqual(adt0.fold, 0) self.assertEqual(adt1.fold, 0) - def test_pickle_fold(self): t = time(fold=1) dt = datetime(1, 1, 1, fold=1) |
