Skip to content

Commit fda9103

Browse files
committed
mimic urljoin behaviour when the first url is falsy
1 parent eb67445 commit fda9103

3 files changed

Lines changed: 51 additions & 34 deletions

File tree

tests/test_urlparse4.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,17 @@
1515

1616
]
1717

18+
urljoin_testcases = [
19+
[("", "http://example.com"), "http://example.com"]
20+
]
21+
1822

1923
class UrlParse4TestCase(unittest.TestCase):
2024

2125
def test_urlsplit(self):
2226
for case in urlsplit_testcases:
2327
self.assertEqual(urlparse.urlsplit(case[0]), case[1])
28+
29+
def test_urljoin(self):
30+
for case in urljoin_testcases:
31+
self.assertEqual(urlparse.urljoin(*case[0]), case[1])

urlparse4/cgurl.cpp

Lines changed: 42 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

urlparse4/cgurl.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def urlsplit(url):
160160
return SplitResultNamedTuple.__new__(SplitResultNamedTuple, url)
161161

162162
def urljoin(bytes base, bytes url, allow_fragments=True):
163-
if allow_fragments:
163+
if allow_fragments and base:
164164
return GURL(base).Resolve(url).spec()
165165
else:
166166
return stdlib_urlparse.urljoin(base, url, allow_fragments=allow_fragments)

0 commit comments

Comments
 (0)