summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenthil Kumaran <senthil@uthcode.com>2016-07-10 15:34:21 (GMT)
committerSenthil Kumaran <senthil@uthcode.com>2016-07-10 15:34:21 (GMT)
commit2d2e6be39a06a96e877b13f00acb85b01eb93bca (patch)
tree48591d0ff75f268d191aa9e266d90a5608ea4227
parente5fa8b0b0d998557b9679ffa3aaec9292fa7855b (diff)
downloadcpython-2d2e6be39a06a96e877b13f00acb85b01eb93bca.zip
cpython-2d2e6be39a06a96e877b13f00acb85b01eb93bca.tar.gz
cpython-2d2e6be39a06a96e877b13f00acb85b01eb93bca.tar.bz2
[port to 2.7] - Issue #27466: Change time format returned by
http.cookie.time2netscape, confirming the netscape cookie format.
-rw-r--r--Lib/cookielib.py2
-rw-r--r--Lib/test/test_cookielib.py31
-rw-r--r--Misc/NEWS4
3 files changed, 29 insertions, 8 deletions
diff --git a/Lib/cookielib.py b/Lib/cookielib.py
index eb9aec4..2dd7c48 100644
--- a/Lib/cookielib.py
+++ b/Lib/cookielib.py
@@ -113,7 +113,7 @@ def time2netscape(t=None):
"""
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
index a6568d7..5182bc0 100644
--- a/Lib/test/test_cookielib.py
+++ b/Lib/test/test_cookielib.py
@@ -6,6 +6,7 @@ import os
import re
import time
+from cookielib import http2time, time2isoz, time2netscape
from unittest import TestCase
from test import test_support
@@ -14,8 +15,6 @@ from test import test_support
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 @@ class DateTimeTests(TestCase):
r"^\d{4}-\d\d-\d\d \d\d:\d\d:\d\dZ$",
"bad time2isoz format: %s %s" % (az, bz))
- def test_http2time(self):
- from cookielib import http2time
+ 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):
def parse_date(text):
return time.gmtime(http2time(text))[:6]
@@ -45,7 +64,7 @@ class DateTimeTests(TestCase):
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 @@ class DateTimeTests(TestCase):
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
index fbfacca..9f5075c3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -17,6 +17,10 @@ Core and Builtins
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.