§
    Ïù^è  ã                   óp   — 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dS )	zUnit tests.Ú
test_suiteé    )ÚdefaultdictN)ÚInvalidURIErrorÚURIÚfind_uris_in_textÚmergeÚremove_dot_segmentsc                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚURITestCasec                 óF  — |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          d¦  «        ¦  «        d¦  «         |                       t          t          d	¦  «        ¦  «        d¦  «         |                       t          t          d
¦  «        ¦  «        d¦  «         d S )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ÔFÑGÔGØ4ñ	6ô 	6ð 	6ð 	×Ò��SÐ!:Ñ;Ô;Ñ<Ô<Ø2ñ	4ô 	4ð 	4à×Ò��SÐ!BÑCÔCÑDÔDØ8ñ	:ô 	:ð 	:ð
 	×Ò��SÐ!5Ñ6Ô6Ñ7Ô7Ø2ñ	4ô 	4ð 	4à×Ò��SÐ!7Ñ8Ô8Ñ9Ô9Ø2ñ	4ô 	4ð 	4à×Ò��SÐ!9Ñ:Ô:Ñ;Ô;Ø2ñ	4ô 	4ð 	4ð 	4ð 	4ó    c                 óÞ  — ddgddgddgg d¢g}t          t          ¦  «        }|D ]<}|D ]7}|t          t          |¦  «        ¦  «                                      |¦  «         Œ8Œ=|                      t          |¦  «        t          |¦  «        ¦  «         |D ]X}|                      t          |¦  «        t          |t          t          |d         ¦  «        ¦  «                 ¦  «        ¦  «         ŒYd S )	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ð 	7ˆIØ ð 7ð 7�Ø�4¥ C¡¤™>œ>Ô*×1Ò1°#Ñ6Ô6Ð6Ð6ð7à×Ò�˜Z™œ­#¨j©/¬/Ñ:Ô:Ð:Ø#ð 	=ð 	=ˆIØ×ÒÝ�yÑ!Ô!Ý�z¥$¥s¨9°Q¬<Ñ'8Ô'8Ñ"9Ô"9Ô:Ñ;Ô;ñ=ô =ð =ð =ð	=ð 	=r   c                 óH   — |                       t          t          d¦  «         d S )Nu   http://â‚¬xample.com/)ÚassertRaisesr   r   r   s    r   Útest_invalid_urizURITestCase.test_invalid_uriK   s!   € Ø×Ò�/­3Ð0GÑHÔHÐHÐHÐHr   c                 ó6  — |                       t          ddd¬¦  «        d¦  «         |                       t          ddd¬¦  «        d¦  «         |                       t          ddd¬¦  «        d¦  «         |                       t          d	dd¬¦  «        d¦  «         d S )
NÚ ÚfooT)Úhas_authorityz/fooFz/a/b/cz/a/b/fooz/a/b/)r   r   r   s    r   Ú
test_mergezURITestCase.test_mergeN   s°   € ð 	×Ò�˜r 5¸Ð=Ñ=Ô=¸vÑFÔFÐFØ×Ò�˜r 5¸Ð>Ñ>Ô>ÀÑFÔFÐFØ×Ò�˜x¨¸dÐCÑCÔCØ#ñ	%ô 	%ð 	%à×Ò�˜w¨¸TÐBÑBÔBØ#ñ	%ô 	%ð 	%ð 	%ð 	%r   c                 ó’   — |                       t          d¦  «        d¦  «         |                       t          d¦  «        d¦  «         d S )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   sH   € à×ÒÕ,Ð-?Ñ@Ô@À&ÑIÔIÐIØ×ÒÕ,Ð-AÑBÔBÀGÑLÔLÐLÐLÐLr   c                 óÂ  ‡— t          d¦  «        Šˆfd„}|                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d	¦  «        d
¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d ¦  «        d¦  «         |                       |d!¦  «        d"¦  «         |                       |d#¦  «        d"¦  «         |                       |d$¦  «        d%¦  «         |                       |d&¦  «        d'¦  «         |                       |d(¦  «        d'¦  «         |                       |d)¦  «        d
¦  «         d S )*Núhttp://a/b/c/d;p?qc                 óH   •— t          ‰                     | ¦  «        ¦  «        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Ô3Ð3Ø×Ò˜˜ ™œÐ-=Ñ>Ô>Ð>Ø×Ò˜˜ ™œÐ-=Ñ>Ô>Ð>Ø×Ò˜˜ ™œÐ->Ñ?Ô?Ð?Ø×Ò˜˜ ™œ¨\Ñ:Ô:Ð:à×Ò˜˜ ™œ¨[Ñ9Ô9Ð9Ø×Ò˜˜ ™œÐ-AÑBÔBÐBØ×Ò˜˜ ™œÐ-?Ñ@Ô@Ð@Ø×Ò˜˜ ™œÐ-CÑDÔDÐDØ×Ò˜˜ ™œÐ-?Ñ@Ô@Ð@Ø×Ò˜˜ Ñ)Ô)Ð-AÑBÔBÐBØ×Ò˜˜ ™œÐ->Ñ?Ô?Ð?Ø×Ò˜˜ ™œÐ-?Ñ@Ô@Ð@Ø×Ò˜˜ Ñ+Ô+Ð-CÑDÔDÐDØ×Ò˜˜ ™œÐ-AÑBÔBÐBØ×Ò˜˜ ™œ¨_Ñ=Ô=Ð=Ø×Ò˜˜ ™œ¨_Ñ=Ô=Ð=Ø×Ò˜˜ ™œ¨]Ñ;Ô;Ð;Ø×Ò˜˜ ™œ¨]Ñ;Ô;Ð;Ø×Ò˜˜ ™œ¨^Ñ<Ô<Ð<Ø×Ò˜˜ Ñ)Ô)¨[Ñ9Ô9Ð9Ø×Ò˜˜ Ñ*Ô*¨[Ñ9Ô9Ð9Ø×Ò˜˜ Ñ+Ô+¨\Ñ:Ô:Ð:Ð:Ð:r   c                 óŒ  ‡— t          d¦  «        Šˆfd„}|                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d	¦  «         |                       |d
¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d¦  «        d¦  «         |                       |d ¦  «        d!¦  «         |                       |d"¦  «        d#¦  «         d S )$Nr4   c                 óH   •— t          ‰                     | ¦  «        ¦  «        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{   ss  ø€ åÐ'Ñ(Ô(ˆð	/ð 	/ð 	/ð 	/ð 	/à×Ò˜˜ Ñ.Ô.°,Ñ?Ô?Ð?Ø×Ò˜˜ Ñ1Ô1°,Ñ?Ô?Ð?Ø×Ò˜˜ ™œ°,Ñ?Ô?Ð?Ø×Ò˜˜ Ñ)Ô)°,Ñ?Ô?Ð?Ø×Ò˜˜ ™œÐ2CÑDÔDÐDØ×Ò˜˜ ™œÐ2CÑDÔDÐDØ×Ò˜˜ ™œÐ2DÑEÔEÐEØ×Ò˜˜ ™œÐ2DÑEÔEÐEØ×Ò˜˜ Ñ*Ô*°.ÑAÔAÐAØ×Ò˜˜ Ñ)Ô)Ð2CÑDÔDÐDØ×Ò˜˜ Ñ)Ô)Ð2DÑEÔEÐEØ×Ò˜˜ Ñ*Ô*Ð2BÑCÔCÐCØ×Ò˜˜ Ñ-Ô-Ð2HÑIÔIÐIØ×Ò˜˜ Ñ.Ô.Ð2BÑCÔCÐCØ×Ò˜˜ Ñ+Ô+Ð2HÑIÔIÐIØ×Ò˜˜ Ñ,Ô,Ð2IÑJÔJÐJØ×Ò˜˜ Ñ+Ô+Ð2HÑIÔIÐIØ×Ò˜˜ Ñ,Ô,Ð2IÑJÔJÐJÐJÐJr   c                 ó  — t          d¦  «        }|                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         d S )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—   ss   € õ Ð1Ñ2Ô2ˆØ�Š˜ŸšÐ(<Ñ=Ô=Ñ>Ô>Ð>Ø�Š˜Ÿš¨Ñ8Ô8Ñ9Ô9Ð9Ø�Š˜Ÿš¨Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r   c                 ó  — t          d¦  «        }|                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         |                      |                     d¦  «        ¦  «         d S )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Ÿ   sy   € õ Ð1Ñ2Ô2ˆØ×Ò˜ŸšÐ)BÑCÔCÑDÔDÐDØ×Ò˜Ÿš¨Ñ6Ô6Ñ7Ô7Ð7Ø×Ò˜Ÿš¨Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8r   N)Ú__name__Ú
__module__Ú__qualname__r   r(   r+   r0   r2   rD   rG   rM   rP   © r   r   r   r      s¤   € € € € € ð4ð 4ð 4ð&=ð =ð =ð.Ið Ið Ið%ð %ð %ðMð Mð Mð
;ð ;ð ;ð<Kð Kð Kð8-ð -ð -ð9ð 9ð 9ð 9ð 9r   r   c                  óX   — t          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      sÜ   ðð" Ð à€àð€ð $Ð #Ð #Ð #Ð #Ð #Ø €€€ðIð Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið Ið IðF9ð F9ð F9ð F9ð F9�(Ô#ñ F9ô F9ð F9ðR=ð =ð =ð =ð =r   