summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2002-10-14 19:59:54 (GMT)
committerGuido van Rossum <guido@python.org>2002-10-14 19:59:54 (GMT)
commitbbc0568a5c7d3849a22c78d545823a4b952c0933 (patch)
treec308697f61aeeaa5355147e63b144e97a75161bb /Lib
parent6e75364cbe191710c056c437f2f0e29546625470 (diff)
downloadcpython-bbc0568a5c7d3849a22c78d545823a4b952c0933.zip
cpython-bbc0568a5c7d3849a22c78d545823a4b952c0933.tar.gz
cpython-bbc0568a5c7d3849a22c78d545823a4b952c0933.tar.bz2
Fix for 1.33: urlsplit() should only add '//' if scheme != ''.
Will add test and backport.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_urlparse.py7
-rw-r--r--Lib/urlparse.py2
2 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
index b821879..39f50e4 100644
--- a/Lib/test/test_urlparse.py
+++ b/Lib/test/test_urlparse.py
@@ -27,7 +27,12 @@ class UrlParseTestCase(unittest.TestCase):
self.assertEqual(result2, url)
def checkJoin(self, base, relurl, expected):
- self.assertEqual(urlparse.urljoin(base, relurl), expected)
+ self.assertEqual(urlparse.urljoin(base, relurl), expected,
+ (base, relurl, expected))
+
+ def test_unparse_parse(self):
+ for u in ['Python', './Python']:
+ self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
def test_RFC1808(self):
# "normal" cases from RFC 1808:
diff --git a/Lib/urlparse.py b/Lib/urlparse.py
index 6361937..777b42f 100644
--- a/Lib/urlparse.py
+++ b/Lib/urlparse.py
@@ -128,7 +128,7 @@ def urlunparse((scheme, netloc, url, params, query, fragment)):
return urlunsplit((scheme, netloc, url, query, fragment))
def urlunsplit((scheme, netloc, url, query, fragment)):
- if netloc or (scheme in uses_netloc and url[:2] != '//'):
+ if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'):
if url and url[:1] != '/': url = '/' + url
url = '//' + (netloc or '') + url
if scheme: