http://www.python.org#abc = ('http', 'www.python.org', '', '', '', 'abc')
http://www.python.org/#abc = ('http', 'www.python.org', '/', '', '', 'abc')
http://a/b/c/d;p?q#f = ('http', 'a', '/b/c/d', 'p', 'q', 'f')
+file:///tmp/junk.txt = ('file', '', '/tmp/junk.txt', '', '', '')
urlparse.urljoin() tests
('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)
print "%-13s = %r" % (url, result)
print "urlparse(%r)" % url
print ("expected %r,\n"
" got %r") % (expected, result)
+ # put it back together and it should be the same
+ result2 = urlparse.urlunparse(result)
+ assert(result2 == url)
print
def checkJoin(relurl, expected):
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: