From cde2200ff28a0a54a1dc62e6a63ca3936fee5177 Mon Sep 17 00:00:00 2001 From: Brett Cannon Date: Thu, 3 Jul 2003 19:59:57 +0000 Subject: Fixes bug of timezone value being left as -1 when ``time.tzname[0] == time.tzname[1] and not time.daylight`` is true when it should only when time.daylight is true. Tests are also fixed. Closes bug #763047 and its cohort #763052. --- Lib/_strptime.py | 9 +++++---- Lib/test/test_strptime.py | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Lib/_strptime.py b/Lib/_strptime.py index dcc447b..ba9dde0 100644 --- a/Lib/_strptime.py +++ b/Lib/_strptime.py @@ -501,16 +501,17 @@ def strptime(data_string, format="%a %b %d %H:%M:%S %Y"): # Since -1 is default value only need to worry about setting tz if # it can be something other than -1. found_zone = found_dict['Z'].lower() - if locale_time.timezone[0] == locale_time.timezone[1]: + if locale_time.timezone[0] == locale_time.timezone[1] and \ + time.daylight: pass #Deals with bad locale setup where timezone info is # the same; first found on FreeBSD 4.4. elif found_zone in ("utc", "gmt"): tz = 0 elif locale_time.timezone[2].lower() == found_zone: tz = 0 - elif time.daylight: - if locale_time.timezone[3].lower() == found_zone: - tz = 1 + elif time.daylight and \ + locale_time.timezone[3].lower() == found_zone: + tz = 1 # Cannot pre-calculate datetime_date() since can change in Julian #calculation and thus could have different value for the day of the week diff --git a/Lib/test/test_strptime.py b/Lib/test/test_strptime.py index 2966e22..dcde2c3 100644 --- a/Lib/test/test_strptime.py +++ b/Lib/test/test_strptime.py @@ -303,14 +303,14 @@ class StrptimeTests(unittest.TestCase): strf_output = time.strftime("%Z") #UTC does not have a timezone strp_output = _strptime.strptime(strf_output, "%Z") locale_time = _strptime.LocaleTime() - if time.tzname[0] != time.tzname[1]: + if time.tzname[0] != time.tzname[1] or not time.daylight: self.failUnless(strp_output[8] == time_tuple[8], "timezone check failed; '%s' -> %s != %s" % (strf_output, strp_output[8], time_tuple[8])) else: self.failUnless(strp_output[8] == -1, - "LocaleTime().timezone has duplicate values but " - "timezone value not set to -1") + "LocaleTime().timezone has duplicate values and " + "time.daylight but timezone value not set to -1") def test_date_time(self): # Test %c directive -- cgit v0.12