]> granicus.if.org Git - python/commitdiff
Fix for 1.33: urlsplit() should only add '//' if scheme != ''.
authorGuido van Rossum <guido@python.org>
Mon, 14 Oct 2002 19:59:54 +0000 (19:59 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 14 Oct 2002 19:59:54 +0000 (19:59 +0000)
Will add test and backport.

Lib/test/test_urlparse.py
Lib/urlparse.py

index b821879397979d4d2403c1e8e1edd1b7379f4fb9..39f50e4ac074fb678b2c84c7aa9814ac219bee62 100644 (file)
@@ -27,7 +27,12 @@ class UrlParseTestCase(unittest.TestCase):
             self.assertEqual(result2, url)
 
     def checkJoin(self, base, relurl, expected):
-        self.assertEqual(urlparse.urljoin(base, relurl), expected)
+        self.assertEqual(urlparse.urljoin(base, relurl), expected,
+                         (base, relurl, expected))
+
+    def test_unparse_parse(self):
+        for u in ['Python', './Python']:
+            self.assertEqual(urlparse.urlunparse(urlparse.urlparse(u)), u)
 
     def test_RFC1808(self):
         # "normal" cases from RFC 1808:
index 6361937a93191a23ae1c6ebcbcdf5c1e30beecb9..777b42f703735dce43b436ee08e8261e141104f7 100644 (file)
@@ -128,7 +128,7 @@ def urlunparse((scheme, netloc, url, params, query, fragment)):
     return 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 and scheme in uses_netloc and url[:2] != '//'):
         if url and url[:1] != '/': url = '/' + url
         url = '//' + (netloc or '') + url
     if scheme: