]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
parsedate_tz(): Return a 1 in the tm_yday field so that the value is
authorBarry Warsaw <barry@python.org>
Fri, 3 Feb 2006 04:41:24 +0000 (04:41 +0000)
committerBarry Warsaw <barry@python.org>
Fri, 3 Feb 2006 04:41:24 +0000 (04:41 +0000)
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 <wink>.

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.

Lib/email/_parseaddr.py
Lib/email/test/test_email.py

index 5cb75e69c4213032011e7da5322a356e14493be8..eb1051a61308993133c7d633b7971ca094ae4dbb 100644 (file)
@@ -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):
index 91cd31494233d8873c8fa8c9cf9b26620bb41446..c04c7117e8356feb156f613a1604d471dd8ff575 100644 (file)
@@ -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('<>'), ('', ''))