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.
This commit is contained in:
parent
e134158f23
commit
7dfb6e295b
|
@ -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)
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue