mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Fix SF # 591713, Fix "file:" URL to have right no. of /'s, by Bruce Atherton
Add a test too. urljoin() would make file:/tmp/foo instead of file:///tmp/foo Bugfix candidate, I will backport.
This commit is contained in:
		
							parent
							
								
									e134158f23
								
							
						
					
					
						commit
						7dfb6e295b
					
				
					 2 changed files with 6 additions and 1 deletions
				
			
		|  | @ -17,9 +17,14 @@ def test_frags(self): | ||||||
|                                ('http', 'www.python.org', '/', '', '', 'abc')), |                                ('http', 'www.python.org', '/', '', '', 'abc')), | ||||||
|                               (RFC1808_BASE, |                               (RFC1808_BASE, | ||||||
|                                ('http', 'a', '/b/c/d', 'p', 'q', 'f')), |                                ('http', 'a', '/b/c/d', 'p', 'q', 'f')), | ||||||
|  |                               ('file:///tmp/junk.txt', | ||||||
|  |                                ('file', '', '/tmp/junk.txt', '', '', '')), | ||||||
|                               ]: |                               ]: | ||||||
|             result = urlparse.urlparse(url) |             result = urlparse.urlparse(url) | ||||||
|             self.assertEqual(result, expected) |             self.assertEqual(result, expected) | ||||||
|  |             # put it back together and it should be the same | ||||||
|  |             result2 = urlparse.urlunparse(result) | ||||||
|  |             self.assertEqual(result2, url) | ||||||
| 
 | 
 | ||||||
|     def checkJoin(self, base, relurl, expected): |     def checkJoin(self, base, relurl, expected): | ||||||
|         self.assertEqual(urlparse.urljoin(base, relurl), expected) |         self.assertEqual(urlparse.urljoin(base, relurl), expected) | ||||||
|  |  | ||||||
|  | @ -128,7 +128,7 @@ def urlunparse((scheme, netloc, url, params, query, fragment)): | ||||||
|     return urlunsplit((scheme, netloc, url, query, fragment)) |     return urlunsplit((scheme, netloc, url, query, fragment)) | ||||||
| 
 | 
 | ||||||
| def urlunsplit((scheme, netloc, url, query, fragment)): | def urlunsplit((scheme, netloc, url, query, fragment)): | ||||||
|     if netloc or (scheme in uses_netloc and url[:2] == '//'): |     if netloc or (scheme in uses_netloc and url[:2] != '//'): | ||||||
|         if url and url[:1] != '/': url = '/' + url |         if url and url[:1] != '/': url = '/' + url | ||||||
|         url = '//' + (netloc or '') + url |         url = '//' + (netloc or '') + url | ||||||
|     if scheme: |     if scheme: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Neal Norwitz
						Neal Norwitz