summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSenthil Kumaran <senthil@uthcode.com>2012-07-08 00:15:52 (GMT)
committerSenthil Kumaran <senthil@uthcode.com>2012-07-08 00:15:52 (GMT)
commit540715a369bb53a26e847a7ce741c6834a948d02 (patch)
tree86afecd35dbe0129c24850c3566da958e1b821af /Lib
parenta5e0eaf2e1151b0e800809422a2c567efad9d556 (diff)
parentb7451cecad01889ad56c2bc1c8b5103274fa0152 (diff)
downloadcpython-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.py5
-rw-r--r--Lib/urllib/request.py3
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 = {}