[Python-checkins] r78234 - in python/trunk/Lib: test/test_urlparse.py urlparse.py

senthil.kumaran python-checkins at python.org
Fri Feb 19 08:32:49 CET 2010


Author: senthil.kumaran
Date: Fri Feb 19 08:32:48 2010
New Revision: 78234
Log:
Fix for Issue7904. urlparse.urlsplit to handle schemes in the way defined by RFC3986
Modified:
 python/trunk/Lib/test/test_urlparse.py
 python/trunk/Lib/urlparse.py
Modified: python/trunk/Lib/test/test_urlparse.py
==============================================================================
--- python/trunk/Lib/test/test_urlparse.py	(original)
+++ python/trunk/Lib/test/test_urlparse.py	Fri Feb 19 08:32:48 2010
@@ -141,7 +141,7 @@
 (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(urlparse.urlunsplit(urlparse.urlsplit(u)), u)
 self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
 
@@ -353,6 +353,15 @@
 self.assertEqual(urlparse.urlparse("http://example.com?blahblah=/foo"),
 ('http', 'example.com', '', '', 'blahblah=/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():
 test_support.run_unittest(UrlParseTestCase)
 
Modified: python/trunk/Lib/urlparse.py
==============================================================================
--- python/trunk/Lib/urlparse.py	(original)
+++ python/trunk/Lib/urlparse.py	Fri Feb 19 08:32:48 2010
@@ -163,7 +163,8 @@
 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)


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /