diff options
| author | Tim Graham <timograham@gmail.com> | 2016-08-09 18:14:15 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-09 18:14:15 -0400 |
| commit | a7a7ecd2b026c61a39a46d2d7eced0e06a92c970 (patch) | |
| tree | dcdc5d4393f993c79928af48a2731665db4abdc4 /tests/utils_tests | |
| parent | cd58f13fb68d413443dae74ded5c781a2a285d9f (diff) | |
Refs #27025 -- Fixed a couple timezone tests for Python 3.6.
Reflects behavior changes in PEP 495 (Local Time Disambiguation).
Diffstat (limited to 'tests/utils_tests')
| -rw-r--r-- | tests/utils_tests/test_timezone.py | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py index 87df6b92eb..072e4b699d 100644 --- a/tests/utils_tests/test_timezone.py +++ b/tests/utils_tests/test_timezone.py @@ -1,9 +1,10 @@ import copy import datetime import pickle +import sys import unittest -from django.test import override_settings +from django.test import SimpleTestCase, override_settings from django.utils import timezone try: @@ -18,8 +19,10 @@ if pytz is not None: EAT = timezone.get_fixed_timezone(180) # Africa/Nairobi ICT = timezone.get_fixed_timezone(420) # Asia/Bangkok +PY36 = sys.version_info >= (3, 6) -class TimezoneTests(unittest.TestCase): + +class TimezoneTests(SimpleTestCase): def test_localtime(self): now = datetime.datetime.utcnow().replace(tzinfo=timezone.utc) @@ -28,8 +31,12 @@ class TimezoneTests(unittest.TestCase): self.assertEqual(local_now.tzinfo, local_tz) def test_localtime_naive(self): - with self.assertRaises(ValueError): - timezone.localtime(datetime.datetime.now()) + now = datetime.datetime.now() + if PY36: + self.assertEqual(timezone.localtime(now), now.replace(tzinfo=timezone.LocalTimezone())) + else: + with self.assertRaisesMessage(ValueError, 'astimezone() cannot be applied to a naive datetime'): + timezone.localtime(now) def test_localtime_out_of_range(self): local_tz = timezone.LocalTimezone() @@ -136,8 +143,13 @@ class TimezoneTests(unittest.TestCase): self.assertEqual( timezone.make_naive(datetime.datetime(2011, 9, 1, 17, 20, 30, tzinfo=ICT), EAT), datetime.datetime(2011, 9, 1, 13, 20, 30)) - with self.assertRaises(ValueError): - timezone.make_naive(datetime.datetime(2011, 9, 1, 13, 20, 30), EAT) + + args = (datetime.datetime(2011, 9, 1, 13, 20, 30), EAT) + if PY36: + self.assertEqual(timezone.make_naive(*args), datetime.datetime(2011, 9, 1, 21, 20, 30)) + else: + with self.assertRaisesMessage(ValueError, 'astimezone() cannot be applied to a naive datetime'): + timezone.make_naive(*args) @requires_pytz def test_make_aware2(self): |
