summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2010-05-08 03:11:50 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2010-05-08 03:11:50 (GMT)
commit6057ba1f97ea19c484b03d5dd2f431e7767fefd1 (patch)
treeff9050c2a01c8d480a583dedc083cdb44dea728a
parentbadc709847379cf27785af2d4c1a05c4e27010c2 (diff)
downloadcpython-6057ba1f97ea19c484b03d5dd2f431e7767fefd1.zip
cpython-6057ba1f97ea19c484b03d5dd2f431e7767fefd1.tar.gz
cpython-6057ba1f97ea19c484b03d5dd2f431e7767fefd1.tar.bz2
Fix Issue8656 - urllib2 mangles file://-scheme URLs
-rw-r--r--Lib/test/test_urllib2.py3
-rw-r--r--Lib/urllib2.py2
2 files changed, 3 insertions, 2 deletions
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 01a06fb..9364b3d 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -679,7 +679,7 @@ class HandlerTests(unittest.TestCase):
try:
data = r.read()
headers = r.info()
- newurl = r.geturl()
+ respurl = r.geturl()
finally:
r.close()
stats = os.stat(TESTFN)
@@ -690,6 +690,7 @@ class HandlerTests(unittest.TestCase):
self.assertEqual(headers["Content-type"], "text/plain")
self.assertEqual(headers["Content-length"], "13")
self.assertEqual(headers["Last-modified"], modified)
+ self.assertEqual(respurl, url)
for url in [
"file://localhost:80%s" % urlpath,
diff --git a/Lib/urllib2.py b/Lib/urllib2.py
index 122f777..84f7833 100644
--- a/Lib/urllib2.py
+++ b/Lib/urllib2.py
@@ -1291,7 +1291,7 @@ class FileHandler(BaseHandler):
if not host or \
(not port and socket.gethostbyname(host) in self.get_names()):
return addinfourl(open(localfile, 'rb'),
- headers, 'file:'+file)
+ headers, 'file://'+ host + file)
except OSError, msg:
# urllib2 users shouldn't expect OSErrors coming from urlopen()
raise URLError(msg)