[utils] Fix urljoin for paths with non-http(s) schemes
This commit is contained in:
		
							parent
							
								
									6945b9e78f
								
							
						
					
					
						commit
						fad4ceb534
					
				
					 2 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -507,6 +507,8 @@ class TestUtil(unittest.TestCase):
 | 
			
		|||
        self.assertEqual(urljoin('http://foo.de/', ''), 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', 'rtmp://foo.de'), 'rtmp://foo.de')
 | 
			
		||||
        self.assertEqual(urljoin(None, 'rtmp://foo.de'), 'rtmp://foo.de')
 | 
			
		||||
 | 
			
		||||
    def test_url_or_none(self):
 | 
			
		||||
        self.assertEqual(url_or_none(None), None)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1868,7 +1868,7 @@ def urljoin(base, path):
 | 
			
		|||
        path = path.decode('utf-8')
 | 
			
		||||
    if not isinstance(path, compat_str) or not path:
 | 
			
		||||
        return None
 | 
			
		||||
    if re.match(r'^(?:https?:)?//', path):
 | 
			
		||||
    if re.match(r'^(?:[a-zA-Z][a-zA-Z0-9+-.]*:)?//', path):
 | 
			
		||||
        return path
 | 
			
		||||
    if isinstance(base, bytes):
 | 
			
		||||
        base = base.decode('utf-8')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue