diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-09 09:03:38 +0100 |
---|---|---|
committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-01-17 11:49:15 +0100 |
commit | e6f82438d4e3750e8d299bfd79dac98eebe9f1e0 (patch) | |
tree | 4ee0cbf2c0be9822416aa3d65105f35a9784fd94 /tests/utils_tests | |
parent | 8d98f99a4ab5de6f2c730399f53eba8bf6bea470 (diff) | |
download | django-e6f82438d4e3750e8d299bfd79dac98eebe9f1e0.tar.gz |
Refs #32365 -- Removed support for pytz timezones per deprecation timeline.
Diffstat (limited to 'tests/utils_tests')
-rw-r--r-- | tests/utils_tests/test_dateformat.py | 3 | ||||
-rw-r--r-- | tests/utils_tests/test_timezone.py | 110 |
2 files changed, 6 insertions, 107 deletions
diff --git a/tests/utils_tests/test_dateformat.py b/tests/utils_tests/test_dateformat.py index 9563790b20..dce678e172 100644 --- a/tests/utils_tests/test_dateformat.py +++ b/tests/utils_tests/test_dateformat.py @@ -25,8 +25,7 @@ class DateFormatTests(SimpleTestCase): self.assertEqual(datetime.fromtimestamp(int(format(dt, "U"))), dt) def test_naive_ambiguous_datetime(self): - # dt is ambiguous in Europe/Copenhagen. pytz raises an exception for - # the ambiguity, which results in an empty string. + # dt is ambiguous in Europe/Copenhagen. dt = datetime(2015, 10, 25, 2, 30, 0) # Try all formatters that involve self.timezone. diff --git a/tests/utils_tests/test_timezone.py b/tests/utils_tests/test_timezone.py index ed8386945d..6ec8828561 100644 --- a/tests/utils_tests/test_timezone.py +++ b/tests/utils_tests/test_timezone.py @@ -1,18 +1,12 @@ import datetime -import unittest from unittest import mock try: - import pytz -except ImportError: - pytz = None - -try: import zoneinfo except ImportError: from backports import zoneinfo -from django.test import SimpleTestCase, ignore_warnings, override_settings +from django.test import SimpleTestCase, override_settings from django.utils import timezone from django.utils.deprecation import RemovedInDjango50Warning @@ -21,38 +15,11 @@ EAT = timezone.get_fixed_timezone(180) # Africa/Nairobi ICT = timezone.get_fixed_timezone(420) # Asia/Bangkok UTC = datetime.timezone.utc -HAS_PYTZ = pytz is not None -if not HAS_PYTZ: - CET = None - PARIS_IMPLS = (PARIS_ZI,) - - needs_pytz = unittest.skip("Test requires pytz") -else: - CET = pytz.timezone("Europe/Paris") - PARIS_IMPLS = (PARIS_ZI, CET) - - def needs_pytz(f): - return f - class TimezoneTests(SimpleTestCase): - def setUp(self): - # RemovedInDjango50Warning - timezone.get_default_timezone.cache_clear() - - def tearDown(self): - # RemovedInDjango50Warning - timezone.get_default_timezone.cache_clear() - def test_default_timezone_is_zoneinfo(self): self.assertIsInstance(timezone.get_default_timezone(), zoneinfo.ZoneInfo) - @needs_pytz - @ignore_warnings(category=RemovedInDjango50Warning) - @override_settings(USE_DEPRECATED_PYTZ=True) - def test_setting_allows_fallback_to_pytz(self): - self.assertIsInstance(timezone.get_default_timezone(), pytz.BaseTzInfo) - def test_now(self): with override_settings(USE_TZ=True): self.assertTrue(timezone.is_aware(timezone.now())) @@ -208,46 +175,15 @@ class TimezoneTests(SimpleTestCase): def test_make_aware2(self): CEST = datetime.timezone(datetime.timedelta(hours=2), "CEST") - for tz in PARIS_IMPLS: - with self.subTest(repr(tz)): - self.assertEqual( - timezone.make_aware(datetime.datetime(2011, 9, 1, 12, 20, 30), tz), - datetime.datetime(2011, 9, 1, 12, 20, 30, tzinfo=CEST), - ) - - if HAS_PYTZ: - with self.assertRaises(ValueError): - timezone.make_aware( - CET.localize(datetime.datetime(2011, 9, 1, 12, 20, 30)), CET - ) - + self.assertEqual( + timezone.make_aware(datetime.datetime(2011, 9, 1, 12, 20, 30), PARIS_ZI), + datetime.datetime(2011, 9, 1, 12, 20, 30, tzinfo=CEST), + ) with self.assertRaises(ValueError): timezone.make_aware( datetime.datetime(2011, 9, 1, 12, 20, 30, tzinfo=PARIS_ZI), PARIS_ZI ) - @needs_pytz - def test_make_naive_pytz(self): - self.assertEqual( - timezone.make_naive( - CET.localize(datetime.datetime(2011, 9, 1, 12, 20, 30)), CET - ), - datetime.datetime(2011, 9, 1, 12, 20, 30), - ) - self.assertEqual( - timezone.make_naive( - pytz.timezone("Asia/Bangkok").localize( - datetime.datetime(2011, 9, 1, 17, 20, 30) - ), - CET, - ), - datetime.datetime(2011, 9, 1, 12, 20, 30), - ) - with self.assertRaisesMessage( - ValueError, "make_naive() cannot be applied to a naive datetime" - ): - timezone.make_naive(datetime.datetime(2011, 9, 1, 12, 20, 30), CET) - def test_make_naive_zoneinfo(self): self.assertEqual( timezone.make_naive( @@ -264,21 +200,6 @@ class TimezoneTests(SimpleTestCase): datetime.datetime(2011, 9, 1, 12, 20, 30, fold=1), ) - @needs_pytz - @ignore_warnings(category=RemovedInDjango50Warning) - def test_make_aware_pytz_ambiguous(self): - # 2:30 happens twice, once before DST ends and once after - ambiguous = datetime.datetime(2015, 10, 25, 2, 30) - - with self.assertRaises(pytz.AmbiguousTimeError): - timezone.make_aware(ambiguous, timezone=CET) - - std = timezone.make_aware(ambiguous, timezone=CET, is_dst=False) - dst = timezone.make_aware(ambiguous, timezone=CET, is_dst=True) - self.assertEqual(std - dst, datetime.timedelta(hours=1)) - self.assertEqual(std.tzinfo.utcoffset(std), datetime.timedelta(hours=1)) - self.assertEqual(dst.tzinfo.utcoffset(dst), datetime.timedelta(hours=2)) - def test_make_aware_zoneinfo_ambiguous(self): # 2:30 happens twice, once before DST ends and once after ambiguous = datetime.datetime(2015, 10, 25, 2, 30) @@ -292,21 +213,6 @@ class TimezoneTests(SimpleTestCase): self.assertEqual(std.utcoffset(), datetime.timedelta(hours=1)) self.assertEqual(dst.utcoffset(), datetime.timedelta(hours=2)) - @needs_pytz - @ignore_warnings(category=RemovedInDjango50Warning) - def test_make_aware_pytz_non_existent(self): - # 2:30 never happened due to DST - non_existent = datetime.datetime(2015, 3, 29, 2, 30) - - with self.assertRaises(pytz.NonExistentTimeError): - timezone.make_aware(non_existent, timezone=CET) - - std = timezone.make_aware(non_existent, timezone=CET, is_dst=False) - dst = timezone.make_aware(non_existent, timezone=CET, is_dst=True) - self.assertEqual(std - dst, datetime.timedelta(hours=1)) - self.assertEqual(std.tzinfo.utcoffset(std), datetime.timedelta(hours=1)) - self.assertEqual(dst.tzinfo.utcoffset(dst), datetime.timedelta(hours=2)) - def test_make_aware_zoneinfo_non_existent(self): # 2:30 never happened due to DST non_existent = datetime.datetime(2015, 3, 29, 2, 30) @@ -349,12 +255,6 @@ class TimezoneTests(SimpleTestCase): (zoneinfo.ZoneInfo("Europe/Madrid"), "Europe/Madrid"), (zoneinfo.ZoneInfo("Etc/GMT-10"), "+10"), ] - if HAS_PYTZ: - tests += [ - # pytz, named and fixed offset. - (pytz.timezone("Europe/Madrid"), "Europe/Madrid"), - (pytz.timezone("Etc/GMT-10"), "+10"), - ] for tz, expected in tests: with self.subTest(tz=tz, expected=expected): self.assertEqual(timezone._get_timezone_name(tz), expected) |