[utils] Fix urljoin for paths with non-http(s) schemes
This commit is contained in:
parent
6945b9e78f
commit
fad4ceb534
@ -507,6 +507,8 @@ class TestUtil(unittest.TestCase):
|
|||||||
self.assertEqual(urljoin('http://foo.de/', ''), None)
|
self.assertEqual(urljoin('http://foo.de/', ''), None)
|
||||||
self.assertEqual(urljoin('http://foo.de/', ['foobar']), None)
|
self.assertEqual(urljoin('http://foo.de/', ['foobar']), None)
|
||||||
self.assertEqual(urljoin('http://foo.de/a/b/c.txt', '.././../d.txt'), 'http://foo.de/d.txt')
|
self.assertEqual(urljoin('http://foo.de/a/b/c.txt', '.././../d.txt'), 'http://foo.de/d.txt')
|
||||||
|
self.assertEqual(urljoin('http://foo.de/a/b/c.txt', 'rtmp://foo.de'), 'rtmp://foo.de')
|
||||||
|
self.assertEqual(urljoin(None, 'rtmp://foo.de'), 'rtmp://foo.de')
|
||||||
|
|
||||||
def test_url_or_none(self):
|
def test_url_or_none(self):
|
||||||
self.assertEqual(url_or_none(None), None)
|
self.assertEqual(url_or_none(None), None)
|
||||||
|
@ -1868,7 +1868,7 @@ def urljoin(base, path):
|
|||||||
path = path.decode('utf-8')
|
path = path.decode('utf-8')
|
||||||
if not isinstance(path, compat_str) or not path:
|
if not isinstance(path, compat_str) or not path:
|
||||||
return None
|
return None
|
||||||
if re.match(r'^(?:https?:)?//', path):
|
if re.match(r'^(?:[a-zA-Z][a-zA-Z0-9+-.]*:)?//', path):
|
||||||
return path
|
return path
|
||||||
if isinstance(base, bytes):
|
if isinstance(base, bytes):
|
||||||
base = base.decode('utf-8')
|
base = base.decode('utf-8')
|
||||||
|
Loading…
Reference in New Issue
Block a user