]> granicus.if.org Git - python/commitdiff
Merged revisions 78268 via svnmerge from
authorSenthil Kumaran <orsenthil@gmail.com>
Sat, 20 Feb 2010 22:13:01 +0000 (22:13 +0000)
committerSenthil Kumaran <orsenthil@gmail.com>
Sat, 20 Feb 2010 22:13:01 +0000 (22:13 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78268 | senthil.kumaran | 2010-02-21 03:35:34 +0530 (Sun, 21 Feb 2010) | 3 lines

  Fix for Issue7751: urllib.urlopen("///C|/foo/bar/spam.foo")
........

Lib/test/test_urllib.py
Lib/urllib.py

index fd9c36150ebedbbeda31ffcd726691c091eb195b..d05574cb9983a052719030736e39df8166f266fe 100644 (file)
@@ -94,7 +94,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):
@@ -592,6 +591,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.
index 03f6f5a3232135edaf1fba242d155221207d504b..2fdf927f0ad6e9684dfc07bf5f7d8e5ff7fd8afd 100644 (file)
@@ -177,7 +177,7 @@ class URLopener:
         fullurl = unwrap(toBytes(fullurl))
         # percent encode url. fixing lame server errors like space within url
         # parts
-        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')