Skip to content

Commit bbc0568

Browse files
committed
Fix for 1.33: urlsplit() should only add '//' if scheme != ''.
Will add test and backport.
1 parent 6e75364 commit bbc0568

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

Lib/test/test_urlparse.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ def test_frags(self):
2727
self.assertEqual(result2, url)
2828

2929
def checkJoin(self, base, relurl, expected):
30-
self.assertEqual(urlparse.urljoin(base, relurl), expected)
30+
self.assertEqual(urlparse.urljoin(base, relurl), expected,
31+
(base, relurl, expected))
32+
33+
def test_unparse_parse(self):
34+
for u in ['Python', './Python']:
35+
self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
3136

3237
def test_RFC1808(self):
3338
# "normal" cases from RFC 1808:

Lib/urlparse.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def urlunparse((scheme, netloc, url, params, query, fragment)):
128128
return urlunsplit((scheme, netloc, url, query, fragment))
129129

130130
def urlunsplit((scheme, netloc, url, query, fragment)):
131-
if netloc or (scheme in uses_netloc and url[:2] != '//'):
131+
if netloc or (scheme and scheme in uses_netloc and url[:2] != '//'):
132132
if url and url[:1] != '/': url = '/' + url
133133
url = '//' + (netloc or '') + url
134134
if scheme:

0 commit comments

Comments
 (0)