diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2005-12-23 21:43:48 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2005-12-23 21:43:48 (GMT) |
commit | 71dad72ebe97e41394ff2969d9a2e45dcf197403 (patch) | |
tree | 2cec11254094de29d4d24f2c25c6ffa1ddefdfa2 /Lib/test | |
parent | a2c110b13ae0618215fd4ee570ea9fb84cf8e4e8 (diff) | |
download | cpython-71dad72ebe97e41394ff2969d9a2e45dcf197403.zip cpython-71dad72ebe97e41394ff2969d9a2e45dcf197403.tar.gz cpython-71dad72ebe97e41394ff2969d9a2e45dcf197403.tar.bz2 |
SF patch #1157027, cookielib mis-handles RFC 2109 cookies in Netscape mode
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_cookielib.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py index f0c6683..49e7d47 100644 --- a/Lib/test/test_cookielib.py +++ b/Lib/test/test_cookielib.py @@ -386,6 +386,39 @@ class CookieTests(TestCase): self.assertEquals(interact_netscape(c, "http://www.acme.com/foo/"), '"spam"; eggs') + def test_rfc2109_handling(self): + # RFC 2109 cookies are handled as RFC 2965 or Netscape cookies, + # dependent on policy settings + from cookielib import CookieJar, DefaultCookiePolicy + + for rfc2109_as_netscape, rfc2965, version in [ + # default according to rfc2965 if not explicitly specified + (None, False, 0), + (None, True, 1), + # explicit rfc2109_as_netscape + (False, False, None), # version None here means no cookie stored + (False, True, 1), + (True, False, 0), + (True, True, 0), + ]: + policy = DefaultCookiePolicy( + rfc2109_as_netscape=rfc2109_as_netscape, + rfc2965=rfc2965) + c = CookieJar(policy) + interact_netscape(c, "http://www.example.com/", "ni=ni; Version=1") + try: + cookie = c._cookies["www.example.com"]["/"]["ni"] + except KeyError: + self.assert_(version is None) # didn't expect a stored cookie + else: + self.assertEqual(cookie.version, version) + # 2965 cookies are unaffected + interact_2965(c, "http://www.example.com/", + "foo=bar; Version=1") + if rfc2965: + cookie2965 = c._cookies["www.example.com"]["/"]["foo"] + self.assertEqual(cookie2965.version, 1) + def test_ns_parser(self): from cookielib import CookieJar, DEFAULT_HTTP_PORT |