[Python-checkins] r87451 - in python/branches/py3k: Lib/email/_parseaddr.py Lib/email/test/test_email.py Misc/NEWS

r.david.murray python-checkins at python.org
Thu Dec 23 21:35:46 CET 2010


Author: r.david.murray
Date: Thu Dec 23 21:35:46 2010
New Revision: 87451

Log:
#1155362: allow hh:mm:ss-uuuu like we allow hh:mm:ss+uuuu in parsedate_tz

Original patch by Thomas Herve.


Modified:
   python/branches/py3k/Lib/email/_parseaddr.py
   python/branches/py3k/Lib/email/test/test_email.py
   python/branches/py3k/Misc/NEWS

Modified: python/branches/py3k/Lib/email/_parseaddr.py
==============================================================================
--- python/branches/py3k/Lib/email/_parseaddr.py	(original)
+++ python/branches/py3k/Lib/email/_parseaddr.py	Thu Dec 23 21:35:46 2010
@@ -64,8 +64,10 @@
     if len(data) == 4:
         s = data[3]
         i = s.find('+')
+        if i == -1:
+            i = s.find('-')
         if i > 0:
-            data[3:] = [s[:i], s[i+1:]]
+            data[3:] = [s[:i], s[i:]]
         else:
             data.append('') # Dummy tz
     if len(data) < 5:

Modified: python/branches/py3k/Lib/email/test/test_email.py
==============================================================================
--- python/branches/py3k/Lib/email/test/test_email.py	(original)
+++ python/branches/py3k/Lib/email/test/test_email.py	Thu Dec 23 21:35:46 2010
@@ -2277,6 +2277,16 @@
         eq(utils.parsedate_tz('5 Feb 2003 13:47:26 -0800'),
            (2003, 2, 5, 13, 47, 26, 0, 1, -1, -28800))
 
+    def test_parsedate_no_space_before_positive_offset(self):
+        self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26+0800'),
+           (2002, 4, 3, 14, 58, 26, 0, 1, -1, 28800))
+
+    def test_parsedate_no_space_before_negative_offset(self):
+        # Issue 1155362: we already handled '+' for this case.
+        self.assertEqual(utils.parsedate_tz('Wed, 3 Apr 2002 14:58:26-0800'),
+           (2002, 4, 3, 14, 58, 26, 0, 1, -1, -28800))
+
+
     def test_parsedate_acceptable_to_time_functions(self):
         eq = self.assertEqual
         timetup = utils.parsedate('5 Feb 2003 13:47:26 -0800')

Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Thu Dec 23 21:35:46 2010
@@ -11,6 +11,9 @@
 Library
 -------
 
+- Issue #1155362: email.utils.parsedate_tz now handles a missing space before
+  the '-' of a timezone field as well as before a '+'.
+
 - Issue #4871: The zipfile module now gives a more useful error message if
   an attempt is made to use a string to specify the archive password.
 


More information about the Python-checkins mailing list