diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2012-07-07 17:11:44 -0700 |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2012-07-07 17:11:44 -0700 |
commit | b7451cecad01889ad56c2bc1c8b5103274fa0152 (patch) | |
tree | cf06d26cfcea2b794cdacc28fd3e0fc7b06a15b4 | |
parent | 11f0b41e9de3805441ddd4142df9f6b7f4432ca7 (diff) | |
download | cpython-git-b7451cecad01889ad56c2bc1c8b5103274fa0152.tar.gz |
Fix issue14826 - make urllib.request.Request quoted url consistent with URLOpener open method.
Patch contributed by Stephen Thorne.
-rw-r--r-- | Lib/test/test_urllib.py | 5 | ||||
-rw-r--r-- | Lib/urllib/request.py | 3 | ||||
-rw-r--r-- | Misc/NEWS | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index c6f6f6121f..69d543855e 100644 --- a/Lib/test/test_urllib.py +++ b/Lib/test/test_urllib.py @@ -1246,6 +1246,11 @@ class URLopener_Tests(unittest.TestCase): # ftp.close() + def test_quote_url(self): + Request = urllib.request.Request + request = Request("http://www.python.org/foo bar") + self.assertEqual(request.full_url, "http://www.python.org/foo%20bar") + def test_main(): support.run_unittest( diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index d6f9f9a1bc..796b700f99 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -180,7 +180,8 @@ class Request: def __init__(self, url, data=None, headers={}, origin_req_host=None, unverifiable=False): # unwrap('<URL:type://host/path>') --> 'type://host/path' - self.full_url = unwrap(url) + self.full_url = unwrap(to_bytes(url)) + self.full_url = quote(self.full_url, safe="%/:=&?~#+!$,;'@()*[]|") self.full_url, self.fragment = splittag(self.full_url) self.data = data self.headers = {} @@ -87,6 +87,11 @@ Core and Builtins Library ------- +- Issue #14826: Quote urls in urllib.request.Request identically to how they + are quoted by urllib.request.URLopener. Allows urls to spaces in them to work + transparently with urllib.request.urlopen(...). Patch contributed by Stephen + Thorne. + - Issue #14990: Correctly fail with SyntaxError on invalid encoding declaration. |