From: Barry Warsaw Date: Fri, 3 Feb 2006 04:41:24 +0000 (+0000) Subject: parsedate_tz(): Return a 1 in the tm_yday field so that the value is X-Git-Tag: v2.3.6c1~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=08bc84c8dac5d866728ff90c38f62d2e6792276b;p=thirdparty%2FPython%2Fcpython.git parsedate_tz(): Return a 1 in the tm_yday field so that the value is acceptable to Python 2.4's time.strftime(). This fix mirrors the behavior in email 3.0. That field is documented as being "not useable" so it might as well not be buggy too . Add a test for this behavior and update a few tests that were expecting a 0 in this field. After committing I will run the entire Python 2.3 test suite to ensure this doesn't break any Python tests. --- diff --git a/Lib/email/_parseaddr.py b/Lib/email/_parseaddr.py index 5cb75e69c421..eb1051a61308 100644 --- a/Lib/email/_parseaddr.py +++ b/Lib/email/_parseaddr.py @@ -1,4 +1,4 @@ -# Copyright (C) 2002 Python Software Foundation +# Copyright (C) 2002-2006 Python Software Foundation """Email address parsing code. @@ -123,8 +123,7 @@ def parsedate_tz(data): else: tzsign = 1 tzoffset = tzsign * ( (tzoffset/100)*3600 + (tzoffset % 100)*60) - tuple = (yy, mm, dd, thh, tmm, tss, 0, 0, 0, tzoffset) - return tuple + return yy, mm, dd, thh, tmm, tss, 0, 1, 0, tzoffset def parsedate(data): diff --git a/Lib/email/test/test_email.py b/Lib/email/test/test_email.py index 91cd31494233..c04c7117e835 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/email/test/test_email.py @@ -1949,12 +1949,21 @@ class TestMiscellaneous(unittest.TestCase): def test_parsedate_no_dayofweek(self): eq = self.assertEqual eq(Utils.parsedate_tz('25 Feb 2003 13:47:26 -0800'), - (2003, 2, 25, 13, 47, 26, 0, 0, 0, -28800)) + (2003, 2, 25, 13, 47, 26, 0, 1, 0, -28800)) def test_parsedate_compact_no_dayofweek(self): eq = self.assertEqual eq(Utils.parsedate_tz('5 Feb 2003 13:47:26 -0800'), - (2003, 2, 5, 13, 47, 26, 0, 0, 0, -28800)) + (2003, 2, 5, 13, 47, 26, 0, 1, 0, -28800)) + + def test_parsedate_acceptable_to_time_functions(self): + eq = self.assertEqual + timetup = Utils.parsedate('5 Feb 2003 13:47:26 -0800') + eq(int(time.mktime(timetup)), 1044470846) + eq(int(time.strftime('%Y', timetup)), 2003) + timetup = Utils.parsedate_tz('5 Feb 2003 13:47:26 -0800') + eq(int(time.mktime(timetup[:9])), 1044470846) + eq(int(time.strftime('%Y', timetup[:9])), 2003) def test_parseaddr_empty(self): self.assertEqual(Utils.parseaddr('<>'), ('', ''))