summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2003-07-03 19:59:57 (GMT)
committerBrett Cannon <bcannon@gmail.com>2003-07-03 19:59:57 (GMT)
commitcde2200ff28a0a54a1dc62e6a63ca3936fee5177 (patch)
tree569f3472a7ee2c87c04d66442d6e9f3dd89d5a90 /Lib
parentebab26a70950f61b9c342b526b271aac36e1576e (diff)
downloadcpython-cde2200ff28a0a54a1dc62e6a63ca3936fee5177.zip
cpython-cde2200ff28a0a54a1dc62e6a63ca3936fee5177.tar.gz
cpython-cde2200ff28a0a54a1dc62e6a63ca3936fee5177.tar.bz2
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.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/_strptime.py9
-rw-r--r--Lib/test/test_strptime.py6
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