summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2005-12-23 21:43:48 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2005-12-23 21:43:48 (GMT)
commit71dad72ebe97e41394ff2969d9a2e45dcf197403 (patch)
tree2cec11254094de29d4d24f2c25c6ffa1ddefdfa2 /Lib/test
parenta2c110b13ae0618215fd4ee570ea9fb84cf8e4e8 (diff)
downloadcpython-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.py33
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