mirror of
https://github.com/python/cpython.git
synced 2025-10-08 16:11:51 +00:00
Merged revisions 78234 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r78234 | senthil.kumaran | 2010-02-19 13:02:48 +0530 (Fri, 19 Feb 2010) | 2 lines Fix for Issue7904. urlparse.urlsplit to handle schemes in the way defined by RFC3986 ........
This commit is contained in:
parent
03c44a30a3
commit
6be85c52eb
2 changed files with 9 additions and 2 deletions
|
@ -142,7 +142,7 @@ class UrlParseTestCase(unittest.TestCase):
|
||||||
(base, relurl, expected))
|
(base, relurl, expected))
|
||||||
|
|
||||||
def test_unparse_parse(self):
|
def test_unparse_parse(self):
|
||||||
for u in ['Python', './Python']:
|
for u in ['Python', './Python','x-newscheme://foo.com/stuff']:
|
||||||
self.assertEqual(urllib.parse.urlunsplit(urllib.parse.urlsplit(u)), u)
|
self.assertEqual(urllib.parse.urlunsplit(urllib.parse.urlsplit(u)), u)
|
||||||
self.assertEqual(urllib.parse.urlunparse(urllib.parse.urlparse(u)), u)
|
self.assertEqual(urllib.parse.urlunparse(urllib.parse.urlparse(u)), u)
|
||||||
|
|
||||||
|
@ -347,6 +347,13 @@ class UrlParseTestCase(unittest.TestCase):
|
||||||
# Issue 3314: sys module is used in the error
|
# Issue 3314: sys module is used in the error
|
||||||
self.assertRaises(TypeError, urllib.parse.urlencode, "foo")
|
self.assertRaises(TypeError, urllib.parse.urlencode, "foo")
|
||||||
|
|
||||||
|
def test_anyscheme(self):
|
||||||
|
# Issue 7904: s3://foo.com/stuff has netloc "foo.com".
|
||||||
|
self.assertEqual(urlparse.urlparse("s3://foo.com/stuff"),
|
||||||
|
('s3','foo.com','/stuff','','',''))
|
||||||
|
self.assertEqual(urlparse.urlparse("x-newscheme://foo.com/stuff"),
|
||||||
|
('x-newscheme','foo.com','/stuff','','',''))
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(UrlParseTestCase)
|
support.run_unittest(UrlParseTestCase)
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
scheme, url = url[:i].lower(), url[i+1:]
|
scheme, url = url[:i].lower(), url[i+1:]
|
||||||
if scheme in uses_netloc and url[:2] == '//':
|
if url[:2] == '//':
|
||||||
netloc, url = _splitnetloc(url, 2)
|
netloc, url = _splitnetloc(url, 2)
|
||||||
if allow_fragments and scheme in uses_fragment and '#' in url:
|
if allow_fragments and scheme in uses_fragment and '#' in url:
|
||||||
url, fragment = url.split('#', 1)
|
url, fragment = url.split('#', 1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue