]> granicus.if.org Git - python/commitdiff
Changed tests to only urlparse one, which was enough, addressed Ezio's comment
authorSenthil Kumaran <orsenthil@gmail.com>
Thu, 22 Apr 2010 12:10:13 +0000 (12:10 +0000)
committerSenthil Kumaran <orsenthil@gmail.com>
Thu, 22 Apr 2010 12:10:13 +0000 (12:10 +0000)
on Invalid url check statement and versionchanged string in docs.

Doc/library/urlparse.rst
Lib/test/test_urlparse.py
Lib/urlparse.py

index 31137cb67cbfa942579cc162ddd26fb5a0d1c30c..135f46cb08cd1c1631ee8a3fad82d843ccbc1b00 100644 (file)
@@ -101,6 +101,10 @@ The :mod:`urlparse` module defines the following functions:
    .. versionchanged:: 2.5
       Added attributes to return value.
 
+   .. versionchanged:: 2.7
+      Added IPv6 URL parsing capabilities.
+
+
 .. function:: parse_qs(qs[, keep_blank_values[, strict_parsing]])
 
    Parse a query string given as a string argument (data of type
@@ -254,7 +258,7 @@ The :mod:`urlparse` module defines the following functions:
    :rfc:`3986` - Uniform Resource Identifiers
       This is the current standard (STD66). Any changes to urlparse module
       should conform to this. Certain deviations could be observed, which are
-      mostly due backward compatiblity purposes and for certain to de-facto
+      mostly due backward compatiblity purposes and for certain de-facto
       parsing requirements as commonly observed in major browsers.
 
    :rfc:`2732` - Format for Literal IPv6 Addresses in URL's.
index c25b6e0dd74d7fb455aeeb6ab6139dbf001ce122..efbdd1e59efad1e285600ff61ec23836d50b08b7 100644 (file)
@@ -272,10 +272,10 @@ class UrlParseTestCase(unittest.TestCase):
         for invalid_url in [
                 'http://::12.34.56.78]/',
                 'http://[::1/foo/',
+                'ftp://[::1/foo/bad]/bad',
                 'http://[::1/foo/bad]/bad',
                 'http://[::ffff:12.34.56.78']:
-            self.assertRaises(ValueError, lambda : urlparse.urlparse(invalid_url).hostname)
-            self.assertRaises(ValueError, lambda : urlparse.urlparse(invalid_url))
+            self.assertRaises(ValueError, urlparse.urlparse, invalid_url)
 
     def test_urldefrag(self):
         for url, defrag, frag in [
index 1a8151804d481bd468a957243a3b478599c8e934..f1e54d35e98c23ca6e3a9d759fbe3a9a2da7b09f 100644 (file)
@@ -176,10 +176,9 @@ def urlsplit(url, scheme='', allow_fragments=True):
             url = url[i+1:]
             if url[:2] == '//':
                 netloc, url = _splitnetloc(url, 2)
-                if '[' in netloc :
-                    if not ']' in netloc: raise ValueError("Invalid IPv6 URL")
-                if ']' in netloc:
-                    if not '[' in netloc: raise ValueError("Invalid IPv6 URL")
+                if (('[' in netloc and ']' not in netloc) or
+                        (']' in netloc and '[' not in netloc)):
+                    raise ValueError("Invalid IPv6 URL")
             if allow_fragments and '#' in url:
                 url, fragment = url.split('#', 1)
             if '?' in url:
@@ -195,10 +194,9 @@ def urlsplit(url, scheme='', allow_fragments=True):
 
     if url[:2] == '//':
         netloc, url = _splitnetloc(url, 2)
-        if '[' in netloc:
-            if not ']' in netloc: raise ValueError("Invalid IPv6 URL")
-        if ']' in netloc:
-            if not '[' in netloc: raise ValueError("Invalid IPv6 URL")
+        if (('[' in netloc and ']' not in netloc) or
+                (']' in netloc and '[' not in netloc)):
+            raise ValueError("Invalid IPv6 URL")
     if allow_fragments and scheme in uses_fragment and '#' in url:
         url, fragment = url.split('#', 1)
     if scheme in uses_query and '?' in url: