[Python-checkins] r78237 - in python/branches/release31-maint: Lib/test/test_urlparse.py Lib/urllib/parse.py

senthil.kumaran python-checkins at python.org
Fri Feb 19 08:45:03 CET 2010


Author: senthil.kumaran
Date: Fri Feb 19 08:45:03 2010
New Revision: 78237

Log:
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
  ........
................


Modified:
   python/branches/release31-maint/   (props changed)
   python/branches/release31-maint/Lib/test/test_urlparse.py
   python/branches/release31-maint/Lib/urllib/parse.py

Modified: python/branches/release31-maint/Lib/test/test_urlparse.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_urlparse.py	(original)
+++ python/branches/release31-maint/Lib/test/test_urlparse.py	Fri Feb 19 08:45:03 2010
@@ -142,7 +142,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(urllib.parse.urlunsplit(urllib.parse.urlsplit(u)), u)
             self.assertEqual(urllib.parse.urlunparse(urllib.parse.urlparse(u)), u)
 
@@ -347,6 +347,13 @@
         # 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)
 

Modified: python/branches/release31-maint/Lib/urllib/parse.py
==============================================================================
--- python/branches/release31-maint/Lib/urllib/parse.py	(original)
+++ python/branches/release31-maint/Lib/urllib/parse.py	Fri Feb 19 08:45:03 2010
@@ -168,7 +168,7 @@
                 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