diff options
author | Guido van Rossum <guido@python.org> | 2002-10-14 19:59:54 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2002-10-14 19:59:54 (GMT) |
commit | bbc0568a5c7d3849a22c78d545823a4b952c0933 (patch) | |
tree | c308697f61aeeaa5355147e63b144e97a75161bb /Lib | |
parent | 6e75364cbe191710c056c437f2f0e29546625470 (diff) | |
download | cpython-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.py | 7 | ||||
-rw-r--r-- | Lib/urlparse.py | 2 |
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: |