Karthikeyan Singaravelan <tir.kar...@gmail.com> added the comment: > Karthikeyan, it looks like your test will pass even when the bug is not > fixed. A test calling code that writes error message does not necessarily > mean the test itself will fail, I don’t think.
You are right. Sorry, I got mislead by the Exception message and didn't notice the test was passing. The below patch to master ensures the test passes by asserting expires in the cookie. If @demian.brecht haven't had a chance to make a PR then I can try converting the to a PR adding them as co-author. diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index db82382357..07105a7c20 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -1590,6 +1590,7 @@ class CookieJar: def make_cookies(self, response, request): """Return sequence of Cookie objects extracted from response object.""" # get cookie-attributes for RFC 2965 and Netscape protocols + self._policy._now = self._now = int(time.time()) headers = response.info() rfc2965_hdrs = headers.get_all("Set-Cookie2", []) ns_hdrs = headers.get_all("Set-Cookie", []) @@ -1672,8 +1673,6 @@ class CookieJar: _debug("extract_cookies: %s", response.info()) self._cookies_lock.acquire() try: - self._policy._now = self._now = int(time.time()) - for cookie in self.make_cookies(response, request): if self._policy.set_ok(cookie, request): _debug(" setting cookie: %s", cookie) diff --git a/Lib/test/test_http_cookiejar.py b/Lib/test/test_http_cookiejar.py index 22bf41cf1d..ad3364c950 100644 --- a/Lib/test/test_http_cookiejar.py +++ b/Lib/test/test_http_cookiejar.py @@ -585,6 +585,14 @@ class CookieTests(unittest.TestCase): # if expires is in future, keep cookie... c = CookieJar() future = time2netscape(time.time()+3600) + + headers = ["Set-Cookie: CUSTOMER=WILE_E_COYOTE; path=/; expires={0}".format(future)] + req = urllib.request.Request("http://www.coyote.com/") + res = FakeResponse(headers, "http://www.coyote.com/") + cookies = c.make_cookies(res, req) + self.assertEqual(len(cookies), 1) + self.assertEqual(time2netscape(cookies[0].expires), future) + interact_netscape(c, "http://www.acme.com/", 'spam="bar"; expires=%s' % future) self.assertEqual(len(c), 1) Failure without patch : ./python.exe -m unittest -v test.test_http_cookiejar.CookieTests.test_expires test_expires (test.test_http_cookiejar.CookieTests) ... /Users/karthikeyansingaravelan/stuff/python/cpython/Lib/http/cookiejar.py:1619: UserWarning: http.cookiejar bug! Traceback (most recent call last): File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/http/cookiejar.py", line 1616, in make_cookies ns_cookies = self._cookies_from_attrs_set( File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/http/cookiejar.py", line 1574, in _cookies_from_attrs_set cookie = self._cookie_from_cookie_tuple(tup, request) File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/http/cookiejar.py", line 1546, in _cookie_from_cookie_tuple elif expires <= self._now: AttributeError: 'CookieJar' object has no attribute '_now' _warn_unhandled_exception() FAIL ====================================================================== FAIL: test_expires (test.test_http_cookiejar.CookieTests) ---------------------------------------------------------------------- Traceback (most recent call last): File "/Users/karthikeyansingaravelan/stuff/python/cpython/Lib/test/test_http_cookiejar.py", line 593, in test_expires self.assertEqual(len(cookies), 1) AssertionError: 0 != 1 ---------------------------------------------------------------------- Ran 1 test in 0.017s FAILED (failures=1) ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue12144> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com