mirror of https://github.com/python/cpython
amk's fix attached to
[ 516299 ] urlparse can get fragments wrong
This commit is contained in:
parent
5c137c2251
commit
bd3e771a97
|
@ -1,4 +1,9 @@
|
|||
test_urlparse
|
||||
http://www.python.org = ('http', 'www.python.org', '', '', '', '')
|
||||
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')
|
||||
|
||||
urlparse.urljoin() tests
|
||||
|
||||
g:h = 'g:h'
|
||||
|
|
|
@ -4,6 +4,24 @@ errors = 0
|
|||
|
||||
RFC1808_BASE = "http://a/b/c/d;p?q#f"
|
||||
|
||||
for url, expected in [('http://www.python.org',
|
||||
('http', 'www.python.org', '', '', '', '')),
|
||||
('http://www.python.org#abc',
|
||||
('http', 'www.python.org', '', '', '', 'abc')),
|
||||
('http://www.python.org/#abc',
|
||||
('http', 'www.python.org', '/', '', '', 'abc')),
|
||||
(RFC1808_BASE,
|
||||
('http', 'a', '/b/c/d', 'p', 'q', 'f')),
|
||||
]:
|
||||
result = urlparse.urlparse(url)
|
||||
print "%-13s = %r" % (url, result)
|
||||
if result != expected:
|
||||
errors += 1
|
||||
print "urlparse(%r)" % url
|
||||
print ("expected %r,\n"
|
||||
" got %r") % (expected, result)
|
||||
print
|
||||
|
||||
def checkJoin(relurl, expected):
|
||||
global errors
|
||||
result = urlparse.urljoin(RFC1808_BASE, relurl)
|
||||
|
|
|
@ -87,7 +87,9 @@ def urlsplit(url, scheme='', allow_fragments=1):
|
|||
if url[:2] == '//':
|
||||
i = url.find('/', 2)
|
||||
if i < 0:
|
||||
i = len(url)
|
||||
i = url.find('#')
|
||||
if i < 0:
|
||||
i = len(url)
|
||||
netloc = url[2:i]
|
||||
url = url[i:]
|
||||
if allow_fragments and '#' in url:
|
||||
|
|
Loading…
Reference in New Issue