summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_cookielib.py
diff options
context:
space:
mode:
authorGregory P. Smith <greg@mad-scientist.com>2010-07-25 19:11:36 (GMT)
committerGregory P. Smith <greg@mad-scientist.com>2010-07-25 19:11:36 (GMT)
commit2a91ce8960d98fe2c98936a73d5e0e7a24856824 (patch)
tree3e08f842dc9bda2d73a7a35b352fe1f989cd5681 /Lib/test/test_cookielib.py
parent137e0b126d87ef745af972eb27da838b83e90c93 (diff)
downloadcpython-2a91ce8960d98fe2c98936a73d5e0e7a24856824.zip
cpython-2a91ce8960d98fe2c98936a73d5e0e7a24856824.tar.gz
cpython-2a91ce8960d98fe2c98936a73d5e0e7a24856824.tar.bz2
Fixes issue #3704: cookielib was not properly handling URLs with a / in the
parameters.
Diffstat (limited to 'Lib/test/test_cookielib.py')
-rw-r--r--Lib/test/test_cookielib.py28
1 files changed, 21 insertions, 7 deletions
diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py
index f57e0c7..62a275b 100644
--- a/Lib/test/test_cookielib.py
+++ b/Lib/test/test_cookielib.py
@@ -1,11 +1,16 @@
# -*- coding: latin-1 -*-
"""Tests for cookielib.py."""
-import re, os, time
+import cookielib
+import os
+import re
+import time
+
from unittest import TestCase
from test import test_support
+
class DateTimeTests(TestCase):
def test_time2isoz(self):
@@ -563,6 +568,16 @@ class CookieTests(TestCase):
interact_netscape(c, "http://www.acme.com/blah/rhubarb/", 'eggs="bar"')
self.assertIn("/blah/rhubarb", c._cookies["www.acme.com"])
+ def test_default_path_with_query(self):
+ cj = cookielib.CookieJar()
+ uri = "http://example.com/?spam/eggs"
+ value = 'eggs="bar"'
+ interact_netscape(cj, uri, value)
+ # default path does not include query, so is "/", not "/?spam"
+ self.assertIn("/", cj._cookies["example.com"])
+ # cookie is sent back to the same URI
+ self.assertEquals(interact_netscape(cj, uri), value)
+
def test_escape_path(self):
from cookielib import escape_path
cases = [
@@ -591,15 +606,14 @@ class CookieTests(TestCase):
from urllib2 import Request
from cookielib import request_path
# with parameters
- req = Request("http://www.example.com/rheum/rhaponicum;"
+ req = Request("http://www.example.com/rheum/rhaponticum;"
"foo=bar;sing=song?apples=pears&spam=eggs#ni")
- self.assertEquals(request_path(req), "/rheum/rhaponicum;"
- "foo=bar;sing=song?apples=pears&spam=eggs#ni")
+ self.assertEquals(request_path(req),
+ "/rheum/rhaponticum;foo=bar;sing=song")
# without parameters
- req = Request("http://www.example.com/rheum/rhaponicum?"
+ req = Request("http://www.example.com/rheum/rhaponticum?"
"apples=pears&spam=eggs#ni")
- self.assertEquals(request_path(req), "/rheum/rhaponicum?"
- "apples=pears&spam=eggs#ni")
+ self.assertEquals(request_path(req), "/rheum/rhaponticum")
# missing final slash
req = Request("http://www.example.com")
self.assertEquals(request_path(req), "/")