diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2016-04-16 14:15:38 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2016-04-16 14:15:38 (GMT) |
commit | aeff57d34aa60860f6c4e12bfd741d5c92d16dc3 (patch) | |
tree | 43988e470ae04f685aa4afc434549442468ef021 /Lib | |
parent | bf02d18844ff1087225394083f62e4ee8e1db072 (diff) | |
download | cpython-aeff57d34aa60860f6c4e12bfd741d5c92d16dc3.zip cpython-aeff57d34aa60860f6c4e12bfd741d5c92d16dc3.tar.gz cpython-aeff57d34aa60860f6c4e12bfd741d5c92d16dc3.tar.bz2 |
Improve the coverage of urlparse module. Backport to 2.7 branch.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_urlparse.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index b3ad7cd..4e1ded7 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -22,6 +22,49 @@ parse_qsl_test_cases = [ ("&a=b", [('a', 'b')]), ("a=a+b&b=b+c", [('a', 'a b'), ('b', 'b c')]), ("a=1&a=2", [('a', '1'), ('a', '2')]), + (";", []), + (";;", []), + (";a=b", [('a', 'b')]), + ("a=a+b;b=b+c", [('a', 'a b'), ('b', 'b c')]), + ("a=1;a=2", [('a', '1'), ('a', '2')]), + (b";", []), + (b";;", []), + (b";a=b", [(b'a', b'b')]), + (b"a=a+b;b=b+c", [(b'a', b'a b'), (b'b', b'b c')]), + (b"a=1;a=2", [(b'a', b'1'), (b'a', b'2')]), +] + +parse_qs_test_cases = [ + ("", {}), + ("&", {}), + ("&&", {}), + ("=", {'': ['']}), + ("=a", {'': ['a']}), + ("a", {'a': ['']}), + ("a=", {'a': ['']}), + ("&a=b", {'a': ['b']}), + ("a=a+b&b=b+c", {'a': ['a b'], 'b': ['b c']}), + ("a=1&a=2", {'a': ['1', '2']}), + (b"", {}), + (b"&", {}), + (b"&&", {}), + (b"=", {b'': [b'']}), + (b"=a", {b'': [b'a']}), + (b"a", {b'a': [b'']}), + (b"a=", {b'a': [b'']}), + (b"&a=b", {b'a': [b'b']}), + (b"a=a+b&b=b+c", {b'a': [b'a b'], b'b': [b'b c']}), + (b"a=1&a=2", {b'a': [b'1', b'2']}), + (";", {}), + (";;", {}), + (";a=b", {'a': ['b']}), + ("a=a+b;b=b+c", {'a': ['a b'], 'b': ['b c']}), + ("a=1;a=2", {'a': ['1', '2']}), + (b";", {}), + (b";;", {}), + (b";a=b", {b'a': [b'b']}), + (b"a=a+b;b=b+c", {b'a': [b'a b'], b'b': [b'b c']}), + (b"a=1;a=2", {b'a': [b'1', b'2']}), ] class UrlParseTestCase(unittest.TestCase): @@ -86,6 +129,15 @@ class UrlParseTestCase(unittest.TestCase): self.assertEqual(result, expect_without_blanks, "Error parsing %r" % orig) + def test_qs(self): + for orig, expect in parse_qs_test_cases: + result = urlparse.parse_qs(orig, keep_blank_values=True) + self.assertEqual(result, expect, "Error parsing %r" % orig) + expect_without_blanks = dict( + [(v, expect[v]) for v in expect if len(expect[v][0])]) + result = urlparse.parse_qs(orig, keep_blank_values=False) + self.assertEqual(result, expect_without_blanks, + "Error parsing %r" % orig) def test_roundtrips(self): testcases = [ |