diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-02-20 22:05:34 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-02-20 22:05:34 (GMT) |
commit | 18d5a6966980387051e5c1012d9a87a46eda3d34 (patch) | |
tree | 04a2db610a70093c77e619ec9895ea553e970c15 /Lib | |
parent | e3467d5c960f4ec5f0cca5dfa5b3a0a02a19cfb3 (diff) | |
download | cpython-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.py | 6 | ||||
-rw-r--r-- | Lib/urllib.py | 2 |
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') |