summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSenthil Kumaran <orsenthil@gmail.com>2010-02-19 07:45:03 (GMT)
committerSenthil Kumaran <orsenthil@gmail.com>2010-02-19 07:45:03 (GMT)
commita8dbb246a52ad74efb22a65a2e29ae0d304b5f04 (patch)
treee47f47fab7ce53edd11b26d557e7ec030917f601
parent31e8af9ea5f1d9d696c8efea40fc774a37dfc776 (diff)
downloadcpython-a8dbb246a52ad74efb22a65a2e29ae0d304b5f04.zip
cpython-a8dbb246a52ad74efb22a65a2e29ae0d304b5f04.tar.gz
cpython-a8dbb246a52ad74efb22a65a2e29ae0d304b5f04.tar.bz2
Merged revisions 78236 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r78236 | senthil.kumaran | 2010-02-19 13:12:50 +0530 (Fri, 19 Feb 2010) | 9 lines 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 ........ ................
-rw-r--r--Lib/test/test_urlparse.py9
-rw-r--r--Lib/urllib/parse.py2
2 files changed, 9 insertions, 2 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
index 05d4684..08145cb 100644
--- a/Lib/test/test_urlparse.py
+++ b/Lib/test/test_urlparse.py
@@ -142,7 +142,7 @@ class UrlParseTestCase(unittest.TestCase):
(base, relurl, expected))
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.urlunparse(urllib.parse.urlparse(u)), u)
@@ -347,6 +347,13 @@ class UrlParseTestCase(unittest.TestCase):
# Issue 3314: sys module is used in the error
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():
support.run_unittest(UrlParseTestCase)
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
index a27b975..c1ae5ff 100644
--- a/Lib/urllib/parse.py
+++ b/Lib/urllib/parse.py
@@ -168,7 +168,7 @@ def urlsplit(url, scheme='', allow_fragments=True):
break
else:
scheme, url = url[:i].lower(), url[i+1:]
- if scheme in uses_netloc and url[:2] == '//':
+ if url[:2] == '//':
netloc, url = _splitnetloc(url, 2)
if allow_fragments and scheme in uses_fragment and '#' in url:
url, fragment = url.split('#', 1)