[Python-checkins] cpython (2.7): [port to 2.7] - Issue #27466: Change time format returned by

senthil.kumaran python-checkins at python.org
Sun Jul 10 11:34:27 EDT 2016


https://hg.python.org/cpython/rev/c613d8885054
changeset:   102296:c613d8885054
branch:      2.7
parent:      102279:228b23b58ed3
user:        Senthil Kumaran <senthil at uthcode.com>
date:        Sun Jul 10 08:34:21 2016 -0700
summary:
  [port to 2.7] - Issue #27466: Change time format returned by
http.cookie.time2netscape, confirming the netscape cookie format.

files:
  Lib/cookielib.py           |   2 +-
  Lib/test/test_cookielib.py |  31 ++++++++++++++++++++-----
  Misc/NEWS                  |   4 +++
  3 files changed, 29 insertions(+), 8 deletions(-)


diff --git a/Lib/cookielib.py b/Lib/cookielib.py
--- a/Lib/cookielib.py
+++ b/Lib/cookielib.py
@@ -113,7 +113,7 @@
     """
     if t is None: t = time.time()
     year, mon, mday, hour, min, sec, wday = time.gmtime(t)[:7]
-    return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % (
+    return "%s, %02d-%s-%04d %02d:%02d:%02d GMT" % (
         DAYS[wday], mday, MONTHS[mon-1], year, hour, min, sec)
 
 
diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py
--- a/Lib/test/test_cookielib.py
+++ b/Lib/test/test_cookielib.py
@@ -6,6 +6,7 @@
 import re
 import time
 
+from cookielib import http2time, time2isoz, time2netscape
 from unittest import TestCase
 
 from test import test_support
@@ -14,8 +15,6 @@
 class DateTimeTests(TestCase):
 
     def test_time2isoz(self):
-        from cookielib import time2isoz
-
         base = 1019227000
         day = 24*3600
         self.assertEqual(time2isoz(base), "2002-04-19 14:36:40Z")
@@ -30,9 +29,29 @@
                                      r"^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$",
                                      "bad time2isoz format: %s %s" % (az, bz))
 
+    def test_time2netscape(self):
+        base = 1019227000
+        day = 24*3600
+        self.assertEqual(time2netscape(base), "Fri, 19-Apr-2002 14:36:40 GMT")
+        self.assertEqual(time2netscape(base+day),
+                         "Sat, 20-Apr-2002 14:36:40 GMT")
+
+        self.assertEqual(time2netscape(base+2*day),
+                         "Sun, 21-Apr-2002 14:36:40 GMT")
+
+        self.assertEqual(time2netscape(base+3*day),
+                         "Mon, 22-Apr-2002 14:36:40 GMT")
+
+        az = time2netscape()
+        bz = time2netscape(500000)
+        for text in (az, bz):
+            # Format "%s, %02d-%s-%04d %02d:%02d:%02d GMT"
+            self.assertRegexpMatches(
+                text,
+                r"[a-zA-Z]{3}, \d{2}-[a-zA-Z]{3}-\d{4} \d{2}:\d{2}:\d{2} GMT$",
+                "bad time2netscape format: %s %s" % (az, bz))
+
     def test_http2time(self):
-        from cookielib import http2time
-
         def parse_date(text):
             return time.gmtime(http2time(text))[:6]
 
@@ -45,7 +64,7 @@
         self.assertEqual(parse_date("03-Feb-98"), (1998, 2, 3, 0, 0, 0.0))
 
     def test_http2time_formats(self):
-        from cookielib import http2time, time2isoz
+
 
         # test http2time for supported dates.  Test cases with 2 digit year
         # will probably break in year 2044.
@@ -81,8 +100,6 @@
             self.assertEqual(http2time(s.upper()), test_t, s.upper())
 
     def test_http2time_garbage(self):
-        from cookielib import http2time
-
         for test in [
             '',
             'Garbage',
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -17,6 +17,10 @@
 Library
 -------
 
+- Issue #27466: Change time format returned by http.cookie.time2netscape,
+  confirming the netscape cookie format and making it consistent with
+  documentation.
+
 - Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong
   mode no longer break tracing, trace_vinfo() now always returns a list of
   pairs of strings.

-- 
Repository URL: https://hg.python.org/cpython


More information about the Python-checkins mailing list