^rdZeZdgZddlmZddlZddlmZm Z m Z m Z m Z GddejZdZy) z Unit tests. test_suite) defaultdictN)InvalidURIErrorURIfind_uris_in_textmergeremove_dot_segmentscBeZdZdZdZdZdZdZdZdZ dZ d Z y ) URITestCasec|jttdd|jttdd|jttdd|jttdd|jttd d|jttd dy) N"eXAMPLE://a/./b/../b/%63/%7bfoo%7dexample://a/b/c/%7Bfoo%7Dhttp://www.EXAMPLE.com/http://www.example.com/http://www.gnome.org/%7ejamesh/http://www.gnome.org/~jamesh/http://example.comhttp://example.com/http://example.com:/http://example.com:80/) assertEqualstrrselfs 9/usr/lib/python3/dist-packages/lazr/uri/tests/test_uri.pytest_normalisationzURITestCase.test_normalisation!s S!EFG4 6 S!:;<2 4 S!BCD8 : S!5672 4 S!7892 4 S!9:;2 4c tddgddgddggdg}tt}|D]/}|D](}|tt|j |*1|j t |t ||D]>}|j t|t|tt|d@y) Nr rrrrr)rrrrr)rlisthashrappendrlensorted)r uri_groups uri_hashes uri_groupuris r test_hashablezURITestCase.test_hashable4s 1 ( * & & ( . , . '  !& # 7I  74C>*11#6 7 7 Z#j/:# =I   y!z$s9Q<'8"9:; = =rc:|jttdy)Nuhttp://€xample.com/) assertRaisesrrrs rtest_invalid_urizURITestCase.test_invalid_uriKs /30GHrc|jtdddd|jtdddd|jtdddd|jtd dddy) NfooT) has_authorityz/fooFz/a/b/cz/a/b/fooz/a/b/)rrrs r test_mergezURITestCase.test_mergeNsn r5=vF r5>F xdC# % wTB# %rcp|jtdd|jtddy)Nz/a/b/c/./../../gz/a/gzmid/content=5/../6zmid/6)rr rs rtest_remove_dot_segmentsz$URITestCase.test_remove_dot_segmentsXs0 ,-?@&I ,-ABGLrcvtdfd}|j|dd|j|dd|j|dd|j|dd|j|d d |j|d d |j|d d|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|d d|j|d!d"|j|d#d"|j|d$d%|j|d&d'|j|d(d'|j|d)d y)*Nhttp://a/b/c/d;p?qc8tj|SNrresolverelativebases rr8z3URITestCase.test_normal_resolution..resolve`t||H-. .rzg:hgzhttp://a/b/c/gz./gzg/http://a/b/c/g/z/g http://a/gz//gz http://g/z?yzhttp://a/b/c/d;p?yzg?yzhttp://a/b/c/g?yz#szhttp://a/b/c/d;p?q#szg#szhttp://a/b/c/g#szg?y#szhttp://a/b/c/g?y#sz;xzhttp://a/b/c/;xzg;xzhttp://a/b/c/g;xzg;x?y#szhttp://a/b/c/g;x?y#sr-.z http://a/b/c/z./z..z http://a/b/z../z../g http://a/b/gz../..z http://a/z../../z../../grrrr8r;s @rtest_normal_resolutionz"URITestCase.test_normal_resolution]s'( / U3 -=> -=> ->? \: [9 -AB -?@ -CD -?@ )-AB ->? -?@ +-CD -AB _= _= ]; ]; ^< )[9 *[9 +\:rctdfd}|j|dd|j|dd|j|dd|j|dd|j|dd |j|d d |j|d d |j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|dd|j|d d!|j|d"d#y)$Nr4c8tj|Sr6r7r9s rr8z5URITestCase.test_abnormal_resolution..resolve~r<rz ../../../gr?z ../../../../gz/./gz/../gzg.zhttp://a/b/c/g.z.gzhttp://a/b/c/.gzg..zhttp://a/b/c/g..z..gzhttp://a/b/c/..gz./../grAz./g/.r>zg/./hzhttp://a/b/c/g/hzg/../hzhttp://a/b/c/hz g;x=1/./yzhttp://a/b/c/g;x=1/yz g;x=1/../yzhttp://a/b/c/yzg?y/./xzhttp://a/b/c/g?y/./xzg?y/../xzhttp://a/b/c/g?y/../xzg#s/./xzhttp://a/b/c/g#s/./xzg#s/../xzhttp://a/b/c/g#s/../xrBrCs @rtest_abnormal_resolutionz$URITestCase.test_abnormal_resolution{s'( / .,? 1,? ,? ),? 2CD 2CD 2DE 2DE *.A )2CD )2DE *2BC -2HI .2BC +2HI ,2IJ +2HI ,2IJrctd}|j|jd|j|jd|j|jdy)Nhttp://code.launchpad.dev/foozcode.launchpad.devz launchpad.devr-)r assertTrue underDomainrr's r"test_underDomain_matches_subdomainz.URITestCase.test_underDomain_matches_subdomainsO12 (<=> 89 +,rctd}|j|jd|j|jd|j|jdy)NrIzbeta.code.launchpad.devz google.comz unchpad.dev)r assertFalserKrLs r+test_underDomain_doesnt_match_non_subdomainz7URITestCase.test_underDomain_doesnt_match_non_subdomainsU12 )BCD 67 78rN) __name__ __module__ __qualname__rr(r+r0r2rDrGrMrPrrr r s24&=.I%M ;<K8-9rr cPtjjtSr6)unittest TestLoaderloadTestsFromNamerQrTrradditional_testsrYs    2 28 <rasG"  $IIF9(##F9R=r