<s> from test import test_support <EOL> import unittest <EOL> import urlparse <EOL> RFC1808_BASE = "<STR_LIT>" <EOL> RFC2396_BASE = "<STR_LIT>" <EOL> RFC3986_BASE = '<STR_LIT>' <EOL> SIMPLE_BASE = '<STR_LIT>' <EOL> parse_qsl_test_cases = [ <EOL> ( "<STR_LIT>" , [ ] ) , <EOL> ( "<STR_LIT:&>" , [ ] ) , <EOL> ( "<STR_LIT>" , [ ] ) , <EOL> ( "<STR_LIT:=>" , [ ( '<STR_LIT>' , '<STR_LIT>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT>' , '<STR_LIT:a>' ) ] ) , <EOL> ( "<STR_LIT:a>" , [ ( '<STR_LIT:a>' , '<STR_LIT>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT:a>' , '<STR_LIT>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT:a>' , '<STR_LIT>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT:a>' , '<STR_LIT:b>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT:a>' , '<STR_LIT>' ) , ( '<STR_LIT:b>' , '<STR_LIT>' ) ] ) , <EOL> ( "<STR_LIT>" , [ ( '<STR_LIT:a>' , '<STR_LIT:1>' ) , ( '<STR_LIT:a>' , '<STR_LIT:2>' ) ] ) , <EOL> ] <EOL> class UrlParseTestCase ( unittest . TestCase ) : <EOL> def checkRoundtrips ( self , url , parsed , split ) : <EOL> result = urlparse . urlparse ( url ) <EOL> self . assertEqual ( result , parsed ) <EOL> t = ( result . scheme , result . netloc , result . path , <EOL> result . params , result . query , result . fragment ) <EOL> self . assertEqual ( t , parsed ) <EOL> result2 = urlparse . urlunparse ( result ) <EOL> self . assertEqual ( result2 , url ) <EOL> self . assertEqual ( result2 , result . geturl ( ) ) <EOL> result3 = urlparse . urlparse ( result . geturl ( ) ) <EOL> self . assertEqual ( result3 . geturl ( ) , result . geturl ( ) ) <EOL> self . assertEqual ( result3 , result ) <EOL> self . assertEqual ( result3 . scheme , result . scheme ) <EOL> self . assertEqual ( result3 . netloc , result . netloc ) <EOL> self . assertEqual ( result3 . path , result . path ) <EOL> self . assertEqual ( result3 . params , result . params ) <EOL> self . assertEqual ( result3 . query , result . query ) <EOL> self . assertEqual ( result3 . fragment , result . fragment ) <EOL> self . assertEqual ( result3 . username , result . username ) <EOL> self . assertEqual ( result3 . password , result . password ) <EOL> self . assertEqual ( result3 . hostname , result . hostname ) <EOL> self . assertEqual ( result3 . port , result . port ) <EOL> result = urlparse . urlsplit ( url ) <EOL> self . assertEqual ( result , split ) <EOL> t = ( result . scheme , result . netloc , result . path , <EOL> result . query , result . fragment ) <EOL> self . assertEqual ( t , split ) <EOL> result2 = urlparse . urlunsplit ( result ) <EOL> self . assertEqual ( result2 , url ) <EOL> self . assertEqual ( result2 , result . geturl ( ) ) <EOL> result3 = urlparse . urlsplit ( result . geturl ( ) ) <EOL> self . assertEqual ( result3 . geturl ( ) , result . geturl ( ) ) <EOL> self . assertEqual ( result3 , result ) <EOL> self . assertEqual ( result3 . scheme , result . scheme ) <EOL> self . assertEqual ( result3 . netloc , result . netloc ) <EOL> self . assertEqual ( result3 . path , result . path ) <EOL> self . assertEqual ( result3 . query , result . query ) <EOL> self . assertEqual ( result3 . fragment , result . fragment ) <EOL> self . assertEqual ( result3 . username , result . username ) <EOL> self . assertEqual ( result3 . password , result . password ) <EOL> self . assertEqual ( result3 . hostname , result . hostname ) <EOL> self . assertEqual ( result3 . port , result . port ) <EOL> def test_qsl ( self ) : <EOL> for orig , expect in parse_qsl_test_cases : <EOL> result = urlparse . parse_qsl ( orig , keep_blank_values = True ) <EOL> self . assertEqual ( result , expect , "<STR_LIT>" % orig ) <EOL> expect_without_blanks = [ v for v in expect if len ( v [ <NUM_LIT:1> ] ) ] <EOL> result = urlparse . parse_qsl ( orig , keep_blank_values = False ) <EOL> self . assertEqual ( result , expect_without_blanks , <EOL> "<STR_LIT>" % orig ) <EOL> def test_roundtrips ( self ) : <EOL> testcases = [ <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT:file>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT:file>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> ] <EOL> for url , parsed , split in testcases : <EOL> self . checkRoundtrips ( url , parsed , split ) <EOL> def test_http_roundtrips ( self ) : <EOL> testcases = [ <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:abc>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:abc>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT>' , '<STR_LIT:/>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:abc>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT:/>' , '<STR_LIT>' , '<STR_LIT:abc>' ) ) , <EOL> ( '<STR_LIT>' , <EOL> ( '<STR_LIT:a>' , '<STR_LIT>' , '<STR_LIT:p>' , '<STR_LIT:q>' , '<STR_LIT:f>' ) , <EOL> ( '<STR_LIT:a>' , '<STR_LIT>' , '<STR_LIT:q>' , '<STR_LIT:f>' ) ) , <EOL> ] <EOL> for scheme in ( '<STR_LIT:http>' , '<STR_LIT>' ) : <EOL> for url , parsed , split in testcases : <EOL> url = scheme + url <EOL> parsed = ( scheme , ) + parsed <EOL> split = ( scheme , ) + split <EOL> self . checkRoundtrips ( url , parsed , split ) <EOL> def checkJoin ( self , base , relurl , expected ) : <EOL> self . assertEqual ( urlparse . urljoin ( base , relurl ) , expected , <EOL> ( base , relurl , expected ) ) <EOL> def test_unparse_parse ( self ) : <EOL> for u in [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:/>' , ] : <EOL> self . assertEqual ( urlparse . urlunsplit ( urlparse . urlsplit ( u ) ) , u ) <EOL> self . assertEqual ( urlparse . urlunparse ( urlparse . urlparse ( u ) ) , u ) <EOL> def test_RFC1808 ( self ) : <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT:g>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT:.>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT:..>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> def test_RFC2368 ( self ) : <EOL> self . assertEqual ( urlparse . urlparse ( '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_RFC2396 ( self ) : <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT:g>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT:.>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT:..>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , RFC2396_BASE ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> def test_RFC3986 ( self ) : <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT:g>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT:.>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT:..>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( RFC3986_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> def test_urljoins ( self ) : <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT:g>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT:.>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT:..>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( SIMPLE_BASE , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT:..>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . checkJoin ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) <EOL> def test_RFC2732 ( self ) : <EOL> for url , hostname , port in [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , <EOL> '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , <EOL> '<STR_LIT>' , <NUM_LIT> ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , <EOL> '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , None ) , <EOL> ( '<STR_LIT>' , <EOL> '<STR_LIT>' , None ) , <EOL> ] : <EOL> urlparsed = urlparse . urlparse ( url ) <EOL> self . assertEqual ( ( urlparsed . hostname , urlparsed . port ) , ( hostname , port ) ) <EOL> for invalid_url in [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' ] : <EOL> self . assertRaises ( ValueError , urlparse . urlparse , invalid_url ) <EOL> def test_urldefrag ( self ) : <EOL> for url , defrag , frag in [ <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( RFC1808_BASE , '<STR_LIT>' , '<STR_LIT:f>' ) , <EOL> ( RFC2396_BASE , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] : <EOL> self . assertEqual ( urlparse . urldefrag ( url ) , ( defrag , frag ) ) <EOL> def test_urlsplit_attributes ( self ) : <EOL> url = "<STR_LIT>" <EOL> p = urlparse . urlsplit ( url ) <EOL> self . assertEqual ( p . scheme , "<STR_LIT:http>" ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertEqual ( p . path , "<STR_LIT>" ) <EOL> self . assertEqual ( p . query , "<STR_LIT>" ) <EOL> self . assertEqual ( p . fragment , "<STR_LIT>" ) <EOL> self . assertEqual ( p . username , None ) <EOL> self . assertEqual ( p . password , None ) <EOL> self . assertEqual ( p . hostname , "<STR_LIT>" ) <EOL> self . assertEqual ( p . port , None ) <EOL> url = "<STR_LIT>" <EOL> p = urlparse . urlsplit ( url ) <EOL> self . assertEqual ( p . scheme , "<STR_LIT:http>" ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertEqual ( p . path , "<STR_LIT>" ) <EOL> self . assertEqual ( p . query , "<STR_LIT>" ) <EOL> self . assertEqual ( p . fragment , "<STR_LIT>" ) <EOL> self . assertEqual ( p . username , "<STR_LIT>" ) <EOL> self . assertEqual ( p . password , "<STR_LIT>" ) <EOL> self . assertEqual ( p . hostname , "<STR_LIT>" ) <EOL> self . assertEqual ( p . port , <NUM_LIT> ) <EOL> self . assertEqual ( p . geturl ( ) , url ) <EOL> url = "<STR_LIT>" <EOL> p = urlparse . urlsplit ( url ) <EOL> self . assertEqual ( p . scheme , "<STR_LIT:http>" ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertEqual ( p . path , "<STR_LIT>" ) <EOL> self . assertEqual ( p . query , "<STR_LIT>" ) <EOL> self . assertEqual ( p . fragment , "<STR_LIT>" ) <EOL> self . assertEqual ( p . username , "<STR_LIT>" ) <EOL> self . assertEqual ( p . password , "<STR_LIT>" ) <EOL> self . assertEqual ( p . hostname , "<STR_LIT>" ) <EOL> self . assertEqual ( p . port , <NUM_LIT> ) <EOL> self . assertEqual ( p . geturl ( ) , url ) <EOL> def test_attributes_bad_port ( self ) : <EOL> """<STR_LIT>""" <EOL> p = urlparse . urlsplit ( "<STR_LIT>" ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertRaises ( ValueError , lambda : p . port ) <EOL> p = urlparse . urlparse ( "<STR_LIT>" ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertRaises ( ValueError , lambda : p . port ) <EOL> def test_attributes_without_netloc ( self ) : <EOL> uri = "<STR_LIT>" <EOL> p = urlparse . urlsplit ( uri ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertEqual ( p . username , None ) <EOL> self . assertEqual ( p . password , None ) <EOL> self . assertEqual ( p . hostname , None ) <EOL> self . assertEqual ( p . port , None ) <EOL> self . assertEqual ( p . geturl ( ) , uri ) <EOL> p = urlparse . urlparse ( uri ) <EOL> self . assertEqual ( p . netloc , "<STR_LIT>" ) <EOL> self . assertEqual ( p . username , None ) <EOL> self . assertEqual ( p . password , None ) <EOL> self . assertEqual ( p . hostname , None ) <EOL> self . assertEqual ( p . port , None ) <EOL> self . assertEqual ( p . geturl ( ) , uri ) <EOL> def test_caching ( self ) : <EOL> uri = "<STR_LIT>" <EOL> unicode_uri = unicode ( uri ) <EOL> urlparse . urlparse ( unicode_uri ) <EOL> p = urlparse . urlparse ( uri ) <EOL> self . assertEqual ( type ( p . scheme ) , type ( uri ) ) <EOL> self . assertEqual ( type ( p . hostname ) , type ( uri ) ) <EOL> self . assertEqual ( type ( p . path ) , type ( uri ) ) <EOL> def test_noslash ( self ) : <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT:http>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_anyscheme ( self ) : <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_withoutscheme ( self ) : <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT:path>" ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:path>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT:http>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_portseparator ( self ) : <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , ( '<STR_LIT:http>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> self . assertEqual ( urlparse . urlparse ( "<STR_LIT>" ) , <EOL> ( '<STR_LIT:http>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) ) <EOL> def test_main ( ) : <EOL> test_support . run_unittest ( UrlParseTestCase ) <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> test_main ( ) </s>
