[Python-checkins] r87331 - in python/branches/release27-maint: Lib/test/test_urlparse.py Lib/urlparse.py Misc/NEWS

senthil.kumaran python-checkins at python.org
Fri Dec 17 05:56:02 CET 2010


Author: senthil.kumaran
Date: Fri Dec 17 05:56:02 2010
New Revision: 87331

Log:
Merged revisions 87329 via svnmerge from 
svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87329 | senthil.kumaran | 2010-12-17 12:48:45 +0800 (Fri, 17 Dec 2010) | 3 lines
  
  Fix Issue9721 - urljoin behavior when the relative url starts with ';'
........


Modified:
   python/branches/release27-maint/   (props changed)
   python/branches/release27-maint/Lib/test/test_urlparse.py
   python/branches/release27-maint/Lib/urlparse.py
   python/branches/release27-maint/Misc/NEWS

Modified: python/branches/release27-maint/Lib/test/test_urlparse.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_urlparse.py	(original)
+++ python/branches/release27-maint/Lib/test/test_urlparse.py	Fri Dec 17 05:56:02 2010
@@ -295,6 +295,9 @@
         #self.checkJoin(RFC3986_BASE, 'http:g','http:g') # strict parser
         self.checkJoin(RFC3986_BASE, 'http:g','http://a/b/c/g') # relaxed parser
 
+        # Test for issue9721
+        self.checkJoin('http://a/b/c/de', ';x','http://a/b/c/;x')
+
     def test_urljoins(self):
         self.checkJoin(SIMPLE_BASE, 'g:h','g:h')
         self.checkJoin(SIMPLE_BASE, 'http:g','http://a/b/c/g')

Modified: python/branches/release27-maint/Lib/urlparse.py
==============================================================================
--- python/branches/release27-maint/Lib/urlparse.py	(original)
+++ python/branches/release27-maint/Lib/urlparse.py	Fri Dec 17 05:56:02 2010
@@ -256,14 +256,9 @@
     if path[:1] == '/':
         return urlunparse((scheme, netloc, path,
                            params, query, fragment))
-    if not path:
+    if not path and not params:
         path = bpath
-        if not params:
-            params = bparams
-        else:
-            path = path[:-1]
-            return urlunparse((scheme, netloc, path,
-                                params, query, fragment))
+        params = bparams
         if not query:
             query = bquery
         return urlunparse((scheme, netloc, path,

Modified: python/branches/release27-maint/Misc/NEWS
==============================================================================
--- python/branches/release27-maint/Misc/NEWS	(original)
+++ python/branches/release27-maint/Misc/NEWS	Fri Dec 17 05:56:02 2010
@@ -21,6 +21,8 @@
 
 Library
 -------
+- Issue #9721: Fix the behavior of urljoin when the relative url starts with a
+  ';' character. Patch by Wes Chow.
 
 - Issue #10714: Limit length of incoming request in http.server to 65536 bytes
   for security reasons.  Initial patch by Ross Lagerwall.


More information about the Python-checkins mailing list