[Python-checkins] r71780 - in python/trunk/Lib: test/test_urllib.py urllib.py
senthil.kumaran
python-checkins at python.org
Tue Apr 21 05:24:19 CEST 2009
Author: senthil.kumaran
Date: Tue Apr 21 05:24:19 2009
New Revision: 71780
Log:
Fix for the Issue918368 - urllib doesn't correct server returned urls
Modified:
python/trunk/Lib/test/test_urllib.py
python/trunk/Lib/urllib.py
Modified: python/trunk/Lib/test/test_urllib.py
==============================================================================
--- python/trunk/Lib/test/test_urllib.py (original)
+++ python/trunk/Lib/test/test_urllib.py Tue Apr 21 05:24:19 2009
@@ -598,6 +598,18 @@
self.assertEqual(('user', 'a:b'),urllib.splitpasswd('user:a:b'))
+class URLopener_Tests(unittest.TestCase):
+ """Testcase to test the open method of URLopener class."""
+
+ def test_quoted_open(self):
+ class DummyURLopener(urllib.URLopener):
+ def open_spam(self, url):
+ return url
+
+ self.assertEqual(DummyURLopener().open(
+ 'spam://example/ /'),'//example/%20/')
+
+
# Just commented them out.
# Can't really tell why keep failing in windows and sparc.
# Everywhere else they work ok, but on those machines, someteimes
@@ -693,6 +705,7 @@
urlencode_Tests,
Pathname_Tests,
Utility_Tests,
+ URLopener_Tests,
#FTPWrapperTests,
)
Modified: python/trunk/Lib/urllib.py
==============================================================================
--- python/trunk/Lib/urllib.py (original)
+++ python/trunk/Lib/urllib.py Tue Apr 21 05:24:19 2009
@@ -176,6 +176,9 @@
def open(self, fullurl, data=None):
"""Use URLopener().open(file) instead of open(file, 'r')."""
fullurl = unwrap(toBytes(fullurl))
+ # percent encode url, fixing lame server errors for e.g, like space
+ # within url paths.
+ fullurl = quote(fullurl, safe="%/:=&?~#+!$,;'@()*[]")
if self.tempcache and fullurl in self.tempcache:
filename, headers = self.tempcache[fullurl]
fp = open(filename, 'rb')
More information about the Python-checkins
mailing list