mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed debug view crash during autumn DST change.
This only happens if USE_TZ = False and pytz is installed (perhaps not the most logical combination, but who am I to jugde?) Refs #23714 which essentially fixed the same problem when USE_TZ = True. Thanks Florian and Carl for insisting until I wrote a complete patch.
This commit is contained in:
@@ -10,6 +10,11 @@ from django.utils.timezone import (
|
||||
get_default_timezone, get_fixed_timezone, make_aware, utc,
|
||||
)
|
||||
|
||||
try:
|
||||
import pytz
|
||||
except ImportError:
|
||||
pytz = None
|
||||
|
||||
|
||||
@override_settings(TIME_ZONE='Europe/Copenhagen')
|
||||
class DateFormatTests(SimpleTestCase):
|
||||
@@ -29,6 +34,18 @@ class DateFormatTests(SimpleTestCase):
|
||||
dt = datetime(2009, 5, 16, 5, 30, 30)
|
||||
self.assertEqual(datetime.fromtimestamp(int(format(dt, 'U'))), dt)
|
||||
|
||||
def test_naive_ambiguous_datetime(self):
|
||||
# dt is ambiguous in Europe/Copenhagen. LocalTimezone guesses the
|
||||
# offset (and gets it wrong 50% of the time) while pytz refuses the
|
||||
# temptation to guess. In any case, this shouldn't crash.
|
||||
dt = datetime(2015, 10, 25, 2, 30, 0)
|
||||
|
||||
# Try all formatters that involve self.timezone.
|
||||
self.assertEqual(format(dt, 'I'), '0' if pytz is None else '')
|
||||
self.assertEqual(format(dt, 'O'), '+0100' if pytz is None else '')
|
||||
self.assertEqual(format(dt, 'T'), 'CET' if pytz is None else '')
|
||||
self.assertEqual(format(dt, 'Z'), '3600' if pytz is None else '')
|
||||
|
||||
@requires_tz_support
|
||||
def test_datetime_with_local_tzinfo(self):
|
||||
ltz = get_default_timezone()
|
||||
|
||||
Reference in New Issue
Block a user