Ë
    Ïù^è  ã                   ór   — d Z eZdgZddlmZ ddlZddlmZm	Z	m
Z
mZmZ  G d„ dej                  «      Zd„ Zy)	zUnit tests.Ú
test_suiteé    )ÚdefaultdictN)ÚInvalidURIErrorÚURIÚfind_uris_in_textÚmergeÚremove_dot_segmentsc                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚURITestCasec                 ó´  — | j                  t        t        d«      «      d«       | j                  t        t        d«      «      d«       | j                  t        t        d«      «      d«       | j                  t        t        d«      «      d«       | j                  t        t        d	«      «      d«       | j                  t        t        d
«      «      d«       y )Nú"eXAMPLE://a/./b/../b/%63/%7bfoo%7dúexample://a/b/c/%7Bfoo%7Dúhttp://www.EXAMPLE.com/úhttp://www.example.com/úhttp://www.gnome.org/%7ejamesh/úhttp://www.gnome.org/~jamesh/úhttp://example.comúhttp://example.com/úhttp://example.com:/úhttp://example.com:80/)ÚassertEqualÚstrr   ©Úselfs    ú9/usr/lib/python3/dist-packages/lazr/uri/tests/test_uri.pyÚtest_normalisationzURITestCase.test_normalisation!   sº   € à×ÑœœSÐ!EÓFÓGØ4ô	6ð 	×ÑœœSÐ!:Ó;Ó<Ø2ô	4à×ÑœœSÐ!BÓCÓDØ8ô	:ð
 	×ÑœœSÐ!5Ó6Ó7Ø2ô	4à×ÑœœSÐ!7Ó8Ó9Ø2ô	4à×ÑœœSÐ!9Ó:Ó;Ø2õ	4ó    c                 ót  — ddgddgddgg d¢g}t        t        «      }|D ]/  }|D ](  }|t        t        |«      «         j	                  |«       Œ* Œ1 | j                  t        |«      t        |«      «       |D ]>  }| j                  t        |«      t        |t        t        |d   «      «         «      «       Œ@ y )	Nr   r   r   r   r   r   )r   r   r   r   r   )r   ÚlistÚhashr   Úappendr   ÚlenÚsorted)r   Ú
uri_groupsÚ
uri_hashesÚ	uri_groupÚuris        r   Útest_hashablezURITestCase.test_hashable4   sÎ   € à1Ø(ð*à&Ø&ð(à.Ø,ð.ò'ðˆ
ô !¤Ó&ˆ
Ø#ò 	7ˆIØ ò 7�Øœ4¤ C£›>Ñ*×1Ñ1°#Õ6ñ7ð	7ð 	×Ñœ˜Z›¬#¨j«/Ô:Ø#ò 	=ˆIØ×ÑÜ�yÓ!Ü�z¤$¤s¨9°Q©<Ó'8Ó"9Ñ:Ó;õ=ñ	=r   c                 ó:   — | j                  t        t        d«       y )Nu   http://â‚¬xample.com/)ÚassertRaisesr   r   r   s    r   Útest_invalid_urizURITestCase.test_invalid_uriK   s   € Ø×Ñœ/¬3Ð0GÕHr   c                 óô   — | j                  t        ddd¬«      d«       | j                  t        ddd¬«      d«       | j                  t        ddd¬«      d«       | j                  t        d	dd¬«      d«       y )
NÚ ÚfooT)Úhas_authorityz/fooFz/a/b/cz/a/b/fooz/a/b/)r   r   r   s    r   Ú
test_mergezURITestCase.test_mergeN   sn   € ð 	×Ñœ˜r 5¸Ô=¸vÔFØ×Ñœ˜r 5¸Ô>ÀÔFØ×Ñœ˜x¨¸dÔCØ#ô	%à×Ñœ˜w¨¸TÔBØ#õ	%r   c                 óp   — | j                  t        d«      d«       | j                  t        d«      d«       y )Nz/a/b/c/./../../gz/a/gzmid/content=5/../6zmid/6)r   r	   r   s    r   Útest_remove_dot_segmentsz$URITestCase.test_remove_dot_segmentsX   s0   € à×ÑÔ,Ð-?Ó@À&ÔIØ×ÑÔ,Ð-AÓBÀGÕLr   c                 óv  ‡— t        d«      Šˆfd„}| j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d	«      d
«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d «      d«       | j                   |d!«      d"«       | j                   |d#«      d"«       | j                   |d$«      d%«       | j                   |d&«      d'«       | j                   |d(«      d'«       | j                   |d)«      d
«       y )*Núhttp://a/b/c/d;p?qc                 ó8   •— t        ‰j                  | «      «      S ©N©r   Úresolve©ÚrelativeÚbases    €r   r8   z3URITestCase.test_normal_resolution.<locals>.resolve`   ó   ø€ Ü�t—|‘| HÓ-Ó.Ð.r   zg:hÚgzhttp://a/b/c/gz./gzg/úhttp://a/b/c/g/z/gú
http://a/gz//gz	http://g/z?yzhttp://a/b/c/d;p?yzg?yzhttp://a/b/c/g?yz#szhttp://a/b/c/d;p?q#szg#szhttp://a/b/c/g#szg?y#szhttp://a/b/c/g?y#sz;xzhttp://a/b/c/;xzg;xzhttp://a/b/c/g;xzg;x?y#szhttp://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../../g©r   r   ©r   r8   r;   s     @r   Útest_normal_resolutionz"URITestCase.test_normal_resolution]   sð  ø€ äÐ'Ó(ˆô	/à×Ñ™ ›¨UÔ3Ø×Ñ™ ›Ð-=Ô>Ø×Ñ™ ›Ð-=Ô>Ø×Ñ™ ›Ð->Ô?Ø×Ñ™ ›¨\Ô:à×Ñ™ ›¨[Ô9Ø×Ñ™ ›Ð-AÔBØ×Ñ™ ›Ð-?Ô@Ø×Ñ™ ›Ð-CÔDØ×Ñ™ ›Ð-?Ô@Ø×Ñ™ Ó)Ð-AÔBØ×Ñ™ ›Ð->Ô?Ø×Ñ™ ›Ð-?Ô@Ø×Ñ™ Ó+Ð-CÔDØ×Ñ™ ›Ð-AÔBØ×Ñ™ ›¨_Ô=Ø×Ñ™ ›¨_Ô=Ø×Ñ™ ›¨]Ô;Ø×Ñ™ ›¨]Ô;Ø×Ñ™ ›¨^Ô<Ø×Ñ™ Ó)¨[Ô9Ø×Ñ™ Ó*¨[Ô9Ø×Ñ™ Ó+¨\Õ:r   c                 ó†  ‡— t        d«      Šˆfd„}| j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d	«       | j                   |d
«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d«      d«       | j                   |d «      d!«       | j                   |d"«      d#«       y )$Nr4   c                 ó8   •— t        ‰j                  | «      «      S r6   r7   r9   s    €r   r8   z5URITestCase.test_abnormal_resolution.<locals>.resolve~   r<   r   z
../../../gr?   z../../../../gz/./gz/../gzg.zhttp://a/b/c/g.z.gzhttp://a/b/c/.gzg..zhttp://a/b/c/g..z..gzhttp://a/b/c/..gz./../grA   z./g/.r>   zg/./hzhttp://a/b/c/g/hzg/../hzhttp://a/b/c/hz	g;x=1/./yzhttp://a/b/c/g;x=1/yz
g;x=1/../yzhttp://a/b/c/yzg?y/./xzhttp://a/b/c/g?y/./xzg?y/../xzhttp://a/b/c/g?y/../xzg#s/./xzhttp://a/b/c/g#s/./xzg#s/../xzhttp://a/b/c/g#s/../xrB   rC   s     @r   Útest_abnormal_resolutionz$URITestCase.test_abnormal_resolution{   s•  ø€ äÐ'Ó(ˆô	/à×Ñ™ Ó.°,Ô?Ø×Ñ™ Ó1°,Ô?Ø×Ñ™ ›°,Ô?Ø×Ñ™ Ó)°,Ô?Ø×Ñ™ ›Ð2CÔDØ×Ñ™ ›Ð2CÔDØ×Ñ™ ›Ð2DÔEØ×Ñ™ ›Ð2DÔEØ×Ñ™ Ó*°.ÔAØ×Ñ™ Ó)Ð2CÔDØ×Ñ™ Ó)Ð2DÔEØ×Ñ™ Ó*Ð2BÔCØ×Ñ™ Ó-Ð2HÔIØ×Ñ™ Ó.Ð2BÔCØ×Ñ™ Ó+Ð2HÔIØ×Ñ™ Ó,Ð2IÔJØ×Ñ™ Ó+Ð2HÔIØ×Ñ™ Ó,Ð2IÕJr   c                 óÚ   — t        d«      }| j                  |j                  d«      «       | j                  |j                  d«      «       | j                  |j                  d«      «       y )Núhttp://code.launchpad.dev/foozcode.launchpad.devzlaunchpad.devr-   )r   Ú
assertTrueÚunderDomain©r   r'   s     r   Ú"test_underDomain_matches_subdomainz.URITestCase.test_underDomain_matches_subdomain—   sO   € ô Ð1Ó2ˆØ�‰˜Ÿ™Ð(<Ó=Ô>Ø�‰˜Ÿ™¨Ó8Ô9Ø�‰˜Ÿ™¨Ó+Õ,r   c                 óÚ   — t        d«      }| j                  |j                  d«      «       | j                  |j                  d«      «       | j                  |j                  d«      «       y )NrI   zbeta.code.launchpad.devz
google.comzunchpad.dev)r   ÚassertFalserK   rL   s     r   Ú+test_underDomain_doesnt_match_non_subdomainz7URITestCase.test_underDomain_doesnt_match_non_subdomainŸ   sU   € ô Ð1Ó2ˆØ×Ñ˜Ÿ™Ð)BÓCÔDØ×Ñ˜Ÿ™¨Ó6Ô7Ø×Ñ˜Ÿ™¨Ó7Õ8r   N)Ú__name__Ú
__module__Ú__qualname__r   r(   r+   r0   r2   rD   rG   rM   rP   © r   r   r   r      s2   „ ò4ò&=ò.Iò%òMò
;ò<Kò8-ó9r   r   c                  óP   — t        j                  «       j                  t        «      S r6   )ÚunittestÚ
TestLoaderÚloadTestsFromNamerQ   rT   r   r   Úadditional_testsrY   ¨   s   € Ü×ÑÓ ×2Ñ2´8Ó<Ð<r   )Ú__doc__ÚtypeÚ__metaclass__Ú__all__Úcollectionsr   rV   Úlazr.urir   r   r   r   r	   ÚTestCaser   rY   rT   r   r   ú<module>ra      sG   ðñ" à€àð€õ $Û ÷Iõ IôF9�(×#Ñ#ô F9óR=r   