From d5b47fb8ce8acefaf952cfa60ec73a875e407e66 Mon Sep 17 00:00:00 2001 From: Senthil Kumaran Date: Sun, 10 Jul 2016 06:45:38 -0700 Subject: Issue #27466: Change time format returned by http.cookie.time2netscape, confirming the netscape cookie format. --- Lib/http/cookiejar.py | 2 +- Lib/test/test_http_cookiejar.py | 22 ++++++++++++++++++++++ Misc/NEWS | 4 ++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index 265ccf9..4466d2e 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -120,7 +120,7 @@ def time2netscape(t=None): dt = datetime.datetime.utcnow() else: dt = datetime.datetime.utcfromtimestamp(t) - return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % ( + return "%s, %02d-%s-%04d %02d:%02d:%02d GMT" % ( DAYS[dt.weekday()], dt.day, MONTHS[dt.month-1], dt.year, dt.hour, dt.minute, dt.second) diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index 585838b..a782608 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -31,6 +31,28 @@ class DateTimeTests(unittest.TestCase): self.assertRegex(text, 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.assertRegex( + 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] diff --git a/Misc/NEWS b/Misc/NEWS index 8c92c38..12d0d45 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -16,6 +16,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 #26664: Fix activate.fish by removing mis-use of ``$``. - Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong -- cgit v0.12