summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBerker Peksag <berker.peksag@gmail.com>2015-04-15 23:31:14 (GMT)
committerBerker Peksag <berker.peksag@gmail.com>2015-04-15 23:31:14 (GMT)
commit20416f7994d1efbca1158e549ec8ece5ac4dbb67 (patch)
treeeefd703fc863c220964e3a81d0136ba68c0579ff
parentd2bc389e550464e3f71ec60071880335e8f9b6c6 (diff)
downloadcpython-20416f7994d1efbca1158e549ec8ece5ac4dbb67.zip
cpython-20416f7994d1efbca1158e549ec8ece5ac4dbb67.tar.gz
cpython-20416f7994d1efbca1158e549ec8ece5ac4dbb67.tar.bz2
Issue #23703: Fix a regression in urljoin() introduced in 901e4e52b20a.
Patch by Demian Brecht.
-rw-r--r--Lib/test/test_urlparse.py3
-rw-r--r--Lib/urllib/parse.py3
-rw-r--r--Misc/NEWS3
3 files changed, 7 insertions, 2 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py
index 5a3aa33..156ccf5 100644
--- a/Lib/test/test_urlparse.py
+++ b/Lib/test/test_urlparse.py
@@ -391,6 +391,9 @@ class UrlParseTestCase(unittest.TestCase):
self.checkJoin('http://a/b/c/d/e/', '../../f/g', 'http://a/b/c/f/g')
self.checkJoin('http://a/b/', '../../f/g/', 'http://a/f/g/')
+ # issue 23703: don't duplicate filename
+ self.checkJoin('a', 'b', 'b')
+
def test_RFC2732(self):
str_cases = [
('http://Test.python.org:5432/foo/', 'test.python.org', 5432),
diff --git a/Lib/urllib/parse.py b/Lib/urllib/parse.py
index 6012d35..e313371 100644
--- a/Lib/urllib/parse.py
+++ b/Lib/urllib/parse.py
@@ -447,8 +447,7 @@ def urljoin(base, url, allow_fragments=True):
segments = base_parts + path.split('/')
# filter out elements that would cause redundant slashes on re-joining
# the resolved_path
- segments = segments[0:1] + [
- s for s in segments[1:-1] if len(s) > 0] + segments[-1:]
+ segments[1:-1] = filter(None, segments[1:-1])
resolved_path = []
diff --git a/Misc/NEWS b/Misc/NEWS
index cd1d81e..ca7de81 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -36,6 +36,9 @@ Core and Builtins
Library
-------
+- Issue #23703: Fix a regression in urljoin() introduced in 901e4e52b20a.
+ Patch by Demian Brecht.
+
- Issue #4254: Adds _curses.update_lines_cols() Patch by Arnon Yaari
- Issue 19933: Provide default argument for ndigits in round. Patch by