Commit 43c5d353 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #17274 -- Accepted TIME_ZONE = None when USE_TZ = True. Thanks pressureman for the report.

This problem only occured when pytz is installed. It's still strongly recommended to define the correct time zone in TIME_ZONE in order to use pytz' implementation and not the approximation based on system time.



git-svn-id: http://code.djangoproject.com/svn/django/trunk@17134 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent c5a899b1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -102,8 +102,10 @@ def get_default_timezone():
    """
    global _localtime
    if _localtime is None:
        tz = settings.TIME_ZONE
        _localtime = pytz.timezone(tz) if pytz else LocalTimezone()
        if isinstance(settings.TIME_ZONE, basestring) and pytz is not None:
            _localtime = pytz.timezone(settings.TIME_ZONE)
        else:
            _localtime = LocalTimezone()
    return _localtime

# This function exists for consistency with get_current_timezone_name
+11 −0
Original line number Diff line number Diff line
@@ -774,6 +774,17 @@ class TemplateTests(BaseDateTimeTests):
        with timezone.override(ICT):
            self.assertEqual(tpl.render(ctx), "2011-09-01 at 20:20:20")

    def test_localtime_with_time_zone_setting_set_to_none(self):
        # Regression for #17274
        tpl = Template("{% load tz %}{{ dt }}")
        ctx = Context({'dt': datetime.datetime(2011, 9, 1, 12, 20, 30, tzinfo=EAT)})

        timezone._localtime = None
        with self.settings(TIME_ZONE=None):
            # the actual value depends on the system time zone of the host
            self.assertTrue(tpl.render(ctx).startswith("2011"))
        timezone._localtime = None

TemplateTests = override_settings(DATETIME_FORMAT='c', USE_L10N=False, USE_TZ=True)(TemplateTests)

#@override_settings(DATETIME_FORMAT='c', USE_L10N=False, USE_TZ=False)