summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hp.com>2015-08-04 10:07:21 +1200
committerRobert Collins <rbtcollins@hp.com>2015-08-04 10:07:21 +1200
commit55b88700d29d00c991307038c6b7ec52b26680ae (patch)
treeea4b3458e47e61d8a79e06dd805b7b5d43a3fa62
parent62f27b5b98725d7b576d9dda784fcbe15bd17063 (diff)
parentf3d9c315b68841d209b399c1c513cd9030d538fe (diff)
downloadcpython-git-55b88700d29d00c991307038c6b7ec52b26680ae.tar.gz
Issue #23888: Handle fractional time in cookie expiry. Patch by ssh.
-rw-r--r--Lib/http/cookiejar.py2
-rw-r--r--Lib/test/test_http_cookiejar.py9
-rw-r--r--Misc/NEWS2
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py
index d54f58a27a..b1ba72ec55 100644
--- a/Lib/http/cookiejar.py
+++ b/Lib/http/cookiejar.py
@@ -758,7 +758,7 @@ class Cookie:
):
if version is not None: version = int(version)
- if expires is not None: expires = int(expires)
+ if expires is not None: expires = int(float(expires))
if port is None and port_specified is True:
raise ValueError("if port is None, port_specified must be false")
diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py
index e9f0356050..50260ffe5c 100644
--- a/Lib/test/test_http_cookiejar.py
+++ b/Lib/test/test_http_cookiejar.py
@@ -566,6 +566,15 @@ class CookieTests(unittest.TestCase):
self.assertEqual(len(c), 1)
self.assertIn('spam="bar"', h)
+ # test if fractional expiry is accepted
+ cookie = Cookie(0, "name", "value",
+ None, False, "www.python.org",
+ True, False, "/",
+ False, False, "1444312383.018307",
+ False, None, None,
+ {})
+ self.assertEqual(cookie.expires, 1444312383)
+
# XXX RFC 2965 expiry rules (some apply to V0 too)
def test_default_path(self):
diff --git a/Misc/NEWS b/Misc/NEWS
index c4584bb4ba..9808c3bd64 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,8 @@ Core and Builtins
Library
-------
+- Issue #23888: Handle fractional time in cookie expiry. Patch by ssh.
+
- Issue #23652: Make it possible to compile the select module against the
libc headers from the Linux Standard Base, which do not include some
EPOLL macros. Patch by Matt Frank.