diff options
author | Senthil Kumaran <senthil@uthcode.com> | 2012-07-08 00:15:52 (GMT) |
---|---|---|
committer | Senthil Kumaran <senthil@uthcode.com> | 2012-07-08 00:15:52 (GMT) |
commit | 540715a369bb53a26e847a7ce741c6834a948d02 (patch) | |
tree | 86afecd35dbe0129c24850c3566da958e1b821af /Lib | |
parent | a5e0eaf2e1151b0e800809422a2c567efad9d556 (diff) | |
parent | b7451cecad01889ad56c2bc1c8b5103274fa0152 (diff) | |
download | cpython-540715a369bb53a26e847a7ce741c6834a948d02.zip cpython-540715a369bb53a26e847a7ce741c6834a948d02.tar.gz cpython-540715a369bb53a26e847a7ce741c6834a948d02.tar.bz2 |
Fix issue14826 - make urllib.request.Request quoted url consistent with URLOpener open method.
Patch contributed by Stephen Thorne.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_urllib.py | 5 | ||||
-rw-r--r-- | Lib/urllib/request.py | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py index 22ada56..af3f0ad 100644 --- a/Lib/test/test_urllib.py +++ b/Lib/test/test_urllib.py @@ -1272,6 +1272,11 @@ class RequestTests(unittest.TestCase): request.method = 'HEAD' self.assertEqual(request.get_method(), 'HEAD') + 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 67b4c79..3896aa0 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -263,7 +263,8 @@ class Request: origin_req_host=None, unverifiable=False, method=None): # 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 = {} |