diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2002-09-25 19:20:12 (GMT) |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2002-09-25 19:20:12 (GMT) |
commit | 7dfb6e295b4e4a8a5554debaf93e260c30725f18 (patch) | |
tree | 86f0cc79f2cb6f477e069730b06bbecc89e0109a /Lib | |
parent | e134158f236b7821ec92aa61cc5fe46e2a77170f (diff) | |
download | cpython-7dfb6e295b4e4a8a5554debaf93e260c30725f18.zip cpython-7dfb6e295b4e4a8a5554debaf93e260c30725f18.tar.gz cpython-7dfb6e295b4e4a8a5554debaf93e260c30725f18.tar.bz2 |
Fix SF # 591713, Fix "file:" URL to have right no. of /'s, by Bruce Atherton
Add a test too. urljoin() would make file:/tmp/foo instead of file:///tmp/foo
Bugfix candidate, I will backport.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_urlparse.py | 5 | ||||
-rw-r--r-- | Lib/urlparse.py | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index d3efa9e..b821879 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -17,9 +17,14 @@ class UrlParseTestCase(unittest.TestCase): ('http', 'www.python.org', '/', '', '', 'abc')), (RFC1808_BASE, ('http', 'a', '/b/c/d', 'p', 'q', 'f')), + ('file:///tmp/junk.txt', + ('file', '', '/tmp/junk.txt', '', '', '')), ]: result = urlparse.urlparse(url) self.assertEqual(result, expected) + # put it back together and it should be the same + result2 = urlparse.urlunparse(result) + self.assertEqual(result2, url) def checkJoin(self, base, relurl, expected): self.assertEqual(urlparse.urljoin(base, relurl), expected) diff --git a/Lib/urlparse.py b/Lib/urlparse.py index ee99645..6361937 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 in uses_netloc and url[:2] != '//'): if url and url[:1] != '/': url = '/' + url url = '//' + (netloc or '') + url if scheme: |