summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2010-02-20 22:05:34 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2010-02-20 22:05:34 (GMT)
commit18d5a6966980387051e5c1012d9a87a46eda3d34 (patch)
tree04a2db610a70093c77e619ec9895ea553e970c15 /Lib
parente3467d5c960f4ec5f0cca5dfa5b3a0a02a19cfb3 (diff)
downloadcpython-18d5a6966980387051e5c1012d9a87a46eda3d34.zip
cpython-18d5a6966980387051e5c1012d9a87a46eda3d34.tar.gz
cpython-18d5a6966980387051e5c1012d9a87a46eda3d34.tar.bz2
Fix for Issue7751: urllib.urlopen("///C|/foo/bar/spam.foo")
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_urllib.py6
-rw-r--r--Lib/urllib.py2
2 files changed, 6 insertions, 2 deletions
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index 1d7fd73..1cf8e44 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -93,7 +93,6 @@ class urlopen_FileTests(unittest.TestCase):
for line in self.returned_obj.__iter__():
self.assertEqual(line, self.text)
-
class ProxyTests(unittest.TestCase):
def setUp(self):
@@ -607,6 +606,11 @@ class URLopener_Tests(unittest.TestCase):
self.assertEqual(DummyURLopener().open(
'spam://example/ /'),'//example/%20/')
+ # test the safe characters are not quoted by urlopen
+ self.assertEqual(DummyURLopener().open(
+ "spam://c:|windows%/:=&?~#+!$,;'@()*[]|/path/"),
+ "//c:|windows%/:=&?~#+!$,;'@()*[]|/path/")
+
# Just commented them out.
# Can't really tell why keep failing in windows and sparc.
diff --git a/Lib/urllib.py b/Lib/urllib.py
index d4740e9..58e750a 100644
--- a/Lib/urllib.py
+++ b/Lib/urllib.py
@@ -179,7 +179,7 @@ class URLopener:
fullurl = unwrap(toBytes(fullurl))
# percent encode url, fixing lame server errors for e.g, like space
# within url paths.
- fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]")
+ fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]|")
if self.tempcache and fullurl in self.tempcache:
filename, headers = self.tempcache[fullurl]
fp = open(filename, 'rb')