diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-12-17 04:56:02 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-12-17 04:56:02 (GMT) |
commit | 5c7fd6eefa457457f6f19e4397a79de5627af32e (patch) | |
tree | b172f2cae3162594127f81689c81d79ec477b859 /Lib | |
parent | 3e8cd62d0342d819157ddab7c36b0eee4018ab95 (diff) | |
download | cpython-5c7fd6eefa457457f6f19e4397a79de5627af32e.zip cpython-5c7fd6eefa457457f6f19e4397a79de5627af32e.tar.gz cpython-5c7fd6eefa457457f6f19e4397a79de5627af32e.tar.bz2 |
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 ';'
........
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_urlparse.py | 3 | ||||
-rw-r--r-- | Lib/urlparse.py | 9 |
2 files changed, 5 insertions, 7 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index 8244017..c5764c5 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -295,6 +295,9 @@ class UrlParseTestCase(unittest.TestCase): #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') diff --git a/Lib/urlparse.py b/Lib/urlparse.py index 4ac9867..a019a7b 100644 --- a/Lib/urlparse.py +++ b/Lib/urlparse.py @@ -256,14 +256,9 @@ def urljoin(base, url, allow_fragments=True): 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, |