diff --git a/wpull/url.py b/wpull/url.py index 1d61c2a3..00860c5f 100644 --- a/wpull/url.py +++ b/wpull/url.py @@ -672,7 +672,7 @@ def query_to_map(text): else: dict_obj[key].append('') - return query_to_map(text) + return dict_obj @functools.lru_cache() diff --git a/wpull/url_test.py b/wpull/url_test.py index dc32dd5e..3a1c5f61 100644 --- a/wpull/url_test.py +++ b/wpull/url_test.py @@ -86,6 +86,7 @@ def test_url_info_parts(self): self.assertEqual(81, url_info.port) self.assertEqual('/%C3%A1sdF%E2%80%8C/ghjK', url_info.path) self.assertEqual('a=b=c&D', url_info.query) + self.assertEqual({'a': ['b=c'], 'D': ['']}, url_info.query_map) self.assertEqual('/?', url_info.fragment) self.assertEqual('utf-8', url_info.encoding) self.assertEqual( @@ -108,6 +109,7 @@ def test_url_info_parts(self): self.assertEqual(21, url_info.port) self.assertEqual('/mydocs/', url_info.path) self.assertFalse(url_info.query) + self.assertEqual({'': ['']}, url_info.query_map) self.assertFalse(url_info.fragment) self.assertEqual('utf-8', url_info.encoding) self.assertEqual( @@ -186,6 +188,10 @@ def test_url_info_percent_encode(self): 'blah=%95%B6%8E%9A%89%BB%82%AF', url_info.query ) + self.assertEqual( + {'blah': ['%95%B6%8E%9A%89%BB%82%AF']}, + url_info.query_map + ) self.assertEqual( 'shift_jis', url_info.encoding @@ -389,6 +395,10 @@ def test_url_info_query(self): 'http://example.com/?a=1&b=', URLInfo.parse('http://example.com?a=1&b=').url ) + self.assertEqual( + {'a': ['b c d%20e-f']}, + URLInfo.parse('http://example.com?a=b+c+d%20e-f').query_map + ) def test_url_info_ipv6(self): self.assertEqual(