do not split cgi params on semicolons

git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@2463 e7d03fd6-7b0d-0410-9947-9c21f3af8025
This commit is contained in:
calvin 2005-03-28 23:51:29 +00:00
parent 1cf7426026
commit 642e2d1698
2 changed files with 10 additions and 3 deletions

View file

@ -443,6 +443,13 @@ class TestUrl (unittest.TestCase):
def _splitparam (self, x):
self.assertEqual(linkcheck.url.splitparams(x[0]), (x[1][0], x[1][1]))
def test_cgi_split (self):
"""
Test cgi parameter splitting.
"""
u = "scid=kb;en-us;Q248840"
self.assertEqual(linkcheck.url.url_parse_query(u), u)
def test_suite ():
"""

View file

@ -154,7 +154,7 @@ def parse_qsl (qs, keep_blank_values=0, strict_parsing=0):
@returns: a list, as G-d intended.
@rtype: list
"""
pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
pairs = [s for s in qs.split('&')]
r = []
for name_value in pairs:
nv = name_value.split('=', 1)
@ -261,9 +261,9 @@ def url_parse_query (query):
append = ""
l = []
for k, v in parse_qsl(query, True):
k = urllib.quote(k, '/-:,')
k = urllib.quote(k, '/-:,;')
if v:
v = urllib.quote(v, '/-:,')
v = urllib.quote(v, '/-:,;')
l.append("%s=%s" % (k, v))
elif v is None:
l.append(k)