diff options
author | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-16 03:02:13 (GMT) |
---|---|---|
committer | Senthil Kumaran <orsenthil@gmail.com> | 2010-04-16 03:02:13 (GMT) |
commit | ad02d239ffc247c6f4ccafaa1428d47465f178ef (patch) | |
tree | 2679fd55c809a483086b0c14579568a8615775c2 /Lib/test/test_urlparse.py | |
parent | b213ee33c03c29c259441e63aba10aa37144a96a (diff) | |
download | cpython-ad02d239ffc247c6f4ccafaa1428d47465f178ef.zip cpython-ad02d239ffc247c6f4ccafaa1428d47465f178ef.tar.gz cpython-ad02d239ffc247c6f4ccafaa1428d47465f178ef.tar.bz2 |
Merged revisions 80101 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r80101 | senthil.kumaran | 2010-04-16 08:16:46 +0530 (Fri, 16 Apr 2010) | 3 lines
Fix issue2987: RFC2732 support for urlparse (IPv6 addresses)
........
Diffstat (limited to 'Lib/test/test_urlparse.py')
-rw-r--r-- | Lib/test/test_urlparse.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Lib/test/test_urlparse.py b/Lib/test/test_urlparse.py index bcfc243..8c8070b 100644 --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -239,10 +239,44 @@ class UrlParseTestCase(unittest.TestCase): #self.checkJoin(RFC2396_BASE, '?y', 'http://a/b/c/?y') #self.checkJoin(RFC2396_BASE, ';x', 'http://a/b/c/;x') + def test_RFC3986(self): self.checkJoin(RFC3986_BASE, '?y','http://a/b/c/d;p?y') self.checkJoin(RFC2396_BASE, ';x', 'http://a/b/c/;x') + def test_RFC2732(self): + for url, hostname, port in [ + ('http://Test.python.org:5432/foo/', 'test.python.org', 5432), + ('http://12.34.56.78:5432/foo/', '12.34.56.78', 5432), + ('http://[::1]:5432/foo/', '::1', 5432), + ('http://[dead:beef::1]:5432/foo/', 'dead:beef::1', 5432), + ('http://[dead:beef::]:5432/foo/', 'dead:beef::', 5432), + ('http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]:5432/foo/', + 'dead:beef:cafe:5417:affe:8fa3:deaf:feed', 5432), + ('http://[::12.34.56.78]:5432/foo/', '::12.34.56.78', 5432), + ('http://[::ffff:12.34.56.78]:5432/foo/', + '::ffff:12.34.56.78', 5432), + ('http://Test.python.org/foo/', 'test.python.org', None), + ('http://12.34.56.78/foo/', '12.34.56.78', None), + ('http://[::1]/foo/', '::1', None), + ('http://[dead:beef::1]/foo/', 'dead:beef::1', None), + ('http://[dead:beef::]/foo/', 'dead:beef::', None), + ('http://[dead:beef:cafe:5417:affe:8FA3:deaf:feed]/foo/', + 'dead:beef:cafe:5417:affe:8fa3:deaf:feed', None), + ('http://[::12.34.56.78]/foo/', '::12.34.56.78', None), + ('http://[::ffff:12.34.56.78]/foo/', + '::ffff:12.34.56.78', None), + ]: + urlparsed = urllib.parse.urlparse(url) + self.assertEqual((urlparsed.hostname, urlparsed.port) , (hostname, port)) + + for invalid_url in [ + 'http://::12.34.56.78]/', + 'http://[::1/foo/', + 'http://[::ffff:12.34.56.78']: + self.assertRaises(ValueError, lambda : urllib.parse.urlparse(invalid_url).hostname) + self.assertRaises(ValueError, lambda : urllib.parse.urlparse(invalid_url)) + def test_urldefrag(self): for url, defrag, frag in [ ('http://python.org#frag', 'http://python.org', 'frag'), |