§
    `ÉÝjG"  ã                   óÞ   — d dl Zd dlZd dlZd dlZd dlmZ d dlZd dl	Z
d dlZ G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zej                             d	¦  «        d
„ ¦   «         ZdS )é    N)Úcleandocc                   ó\   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ ZdS )ÚTestPackageIndexc                 ó¶   — d}|dz  } d                      ¦   «         j        di t          ¦   «         ¤Ž}t          j        j                             |¦  «        sJ ‚d S )Nz&http://other_url?:action=show_md5&amp;z'digest=0123456789abcdef0123456789abcdefz€
            <a href="http://some_url">Name</a>
            (<a title="MD5 hash"
            href="{hash_url}">md5</a>)
        © )ÚlstripÚformatÚlocalsÚ
setuptoolsÚpackage_indexÚPYPI_MD5Úmatch)ÚselfÚhash_urlÚdocs      új/home/spazio/cosmos_universe_media/venv/lib/python3.11/site-packages/setuptools/tests/test_packageindex.pyÚ
test_regexzTestPackageIndex.test_regex   sp   € Ø;ˆØÐ=Ñ=ˆðð ÷ ŠF‰HŒH”Vð	(ð (õ %™hœhð	(ð (ˆõ
 Ô'Ô0×6Ò6°sÑ;Ô;Ð;Ð;Ð;Ð;Ð;ó    c                 ó@  — t           j                             ¦   «         }d}t          j        t
          t          j        |¦  «        ¬¦  «        5  |                     |¦  «        }t          |t          j        j        ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nz.http://127.0.0.1:0/nonesuch/test_package_index©r   ©r   r   ÚPackageIndexÚpytestÚraisesÚ	ExceptionÚreÚescapeÚopen_urlÚ
isinstanceÚurllibÚerrorÚ	HTTPError©r   ÚindexÚurlÚvs       r   Útest_bad_url_bad_portz&TestPackageIndex.test_bad_url_bad_port   sË   € ÝÔ(×5Ò5Ñ7Ô7ˆØ>ˆÝŒ]�9­B¬I°c©N¬NÐ;Ñ;Ô;ð 	9ð 	9Ø—’˜sÑ#Ô#ˆAÝ˜a¥¤Ô!7Ñ8Ô8Ð8Ð8Ð8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   Á7BÂBÂBc                 óD  — t           j                             d¬¦  «        }d}t          j        t
          t          j        |¦  «        ¬¦  «        5  |                     |¦  «        }t          |t          j        j        ¦  «        sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N©zwww.example.com©ÚhostszMurl:%20https://svn.plone.org/svn/collective/inquant.contentmirror.plone/trunkr   r   r#   s       r   Útest_bad_url_typoz"TestPackageIndex.test_bad_url_typo    sÓ   € õ Ô(×5Ò5Ð<PÐ5ÑQÔQˆà]ˆåŒ]�9­B¬I°c©N¬NÐ;Ñ;Ô;ð 	9ð 	9Ø—’˜sÑ#Ô#ˆAÝ˜a¥¤Ô!7Ñ8Ô8Ð8Ð8Ð8Ð8ð	9ð 	9ð 	9ñ 	9ô 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9ð 	9øøøð 	9ð 	9ð 	9ð 	9ð 	9ð 	9s   Á7BÂBÂBc                 óð   — t           j                             d¬¦  «        }d„ }||_        d}t	          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr)   r*   c                  ó@   — t           j                             d¦  «        ‚)NÚline)ÚhttpÚclientÚBadStatusLine)Úargss    r   Ú_urlopenz?TestPackageIndex.test_bad_url_bad_status_line.<locals>._urlopen/   s   € Ý”+×+Ò+¨FÑ3Ô3Ð3r   zhttp://example.comr/   r   )r   r   r   Úopenerr   r   r   r   )r   r$   r4   r%   s       r   Útest_bad_url_bad_status_linez-TestPackageIndex.test_bad_url_bad_status_line,   sÄ   € ÝÔ(×5Ò5Ð<PÐ5ÑQÔQˆð	4ð 	4ð 	4ð  ˆŒØ"ˆÝŒ]�9¨GÐ4Ñ4Ô4ð 	 ð 	 Ø�NŠN˜3ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   ÁA+Á+A/Á2A/c                 ó  — t           j                             d¬¦  «        }d}	 |                     |¦  «         n?# t          j        j        $ r(}t          |¦  «        }d|v s
d|v sd|v sJ ‚Y d}~dS d}~ww xY wt          d¦  «        ‚)	zO
        A bad URL with a double scheme should raise a DistutilsError.
        r)   r*   z2http://http://svn.pythonpaste.org/Paste/wphp/trunkznonnumeric portzgetaddrinfo failedzName or service not knownNzDid not raise)	r   r   r   r   Ú	distutilsÚerrorsÚDistutilsErrorÚstrÚRuntimeError)r   r$   r%   r!   Úmsgs        r   Útest_bad_url_double_schemez+TestPackageIndex.test_bad_url_double_scheme7   s¸   € õ Ô(×5Ò5Ð<PÐ5ÑQÔQˆð Cˆð		Ø�NŠN˜3ÑÔÐÐøÝÔÔ.ð 	ð 	ð 	Ý�e‘*”*ˆCà! SÐ(Ð(Ø'¨3Ð.Ð.Ø.°#Ð5Ð5Ð5ð6ð ˆFˆFˆFˆFˆFøøøøð	øøøõ ˜?Ñ+Ô+Ð+s   ¤: ºA6ÁA1Á1A6c                 óz   — t           j                             d¬¦  «        }d}|                     |d¦  «        sJ ‚d S )Nr)   r*   zfile:///tmp/test_package_indexT)r   r   r   Úurl_ok)r   r$   r%   s      r   Útest_url_okzTestPackageIndex.test_url_okK   sA   € ÝÔ(×5Ò5Ð<PÐ5ÑQÔQˆØ.ˆØ�|Š|˜C Ñ&Ô&Ð&Ð&Ð&Ð&Ð&r   c                 óÐ   — t           j        j        } |d¦  «        }d}||k    sJ ‚ |d¦  «        }d}||k    sJ ‚ |d¦  «        }d}||k    sJ ‚ |d¦  «        }d}||k    sJ ‚d S )	Nzreportlab-2.5.win32-py2.4.exe)úreportlab-2.5z2.4Úwin32zreportlab-2.5.win32.exe)rC   NrD   z!reportlab-2.5.win-amd64-py2.7.exe)rC   z2.7ú	win-amd64zreportlab-2.5.win-amd64.exe)rC   NrE   )r   r   Úparse_bdist_wininst)r   ÚparseÚactualÚexpecteds       r   Útest_parse_bdist_wininstz)TestPackageIndex.test_parse_bdist_wininstP   s«   € ÝÔ(Ô<ˆà�Ð6Ñ7Ô7ˆØ2ˆØ˜Ò!Ð!Ð!Ð!à�Ð0Ñ1Ô1ˆØ1ˆØ˜Ò!Ð!Ð!Ð!à�Ð:Ñ;Ô;ˆØ6ˆØ˜Ò!Ð!Ð!Ð!à�Ð4Ñ5Ô5ˆØ5ˆØ˜Ò!Ð!Ð!Ð!Ð!Ð!r   c                 ón   — t           j        j        j        } |d¦  «        \  }}|dk    sJ ‚|dk    sJ ‚dS )zA
        Test the basic usage of _vcs_split_rev_from_url
        zhttps://example.com/bar@2995zhttps://example.com/barÚ2995N)r   r   r   Ú_vcs_split_rev_from_url)r   Úvsrfur%   Úrevs       r   Útest__vcs_split_rev_from_urlz-TestPackageIndex.test__vcs_split_rev_from_urlc   sI   € õ Ô(Ô5ÔMˆØ�5Ð7Ñ8Ô8‰ˆˆSØÐ/Ò/Ð/Ð/Ð/Ø�fŠ}ˆ}ˆ}ˆ}ˆ}ˆ}r   c                 óf  — |dz  }|                      d¦  «        5 }|                     d¦  «         ddd¦  «         n# 1 swxY w Y   dt          j                             t          |¦  «        ¦  «        z   dz   }t          j                             |¦  «        }d| 	                    ¦   «         v sJ ‚dS )zR
        local_open should be able to read an index from the file system.
        z
index.htmlÚwz<div>content</div>Nzfile:ú/Úcontent)
ÚopenÚwriter    ÚrequestÚpathname2urlr;   r   r   Ú
local_openÚread)r   ÚtmpdirÚ
index_fileÚfr%   Úress         r   Útest_local_indexz!TestPackageIndex.test_local_indexl   sß   € ð ˜lÑ*ˆ
Ø�_Š_˜SÑ!Ô!ð 	* QØ�GŠGÐ(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*à�œ×3Ò3µC¸±K´KÑ@Ô@Ñ@À3ÑFˆÝÔ&×1Ò1°#Ñ6Ô6ˆØ˜CŸHšH™JœJÐ&Ð&Ð&Ð&Ð&Ð&s   ›=½AÁAc                 ó  ‡‡‡‡	‡
— ddg}g d¢Š
g d¢Š	dgŠdgŠg d¢Šˆˆˆˆ	ˆ
fd„|D ¦   «         }|D ]Z\  }}t          t          j                             d	|z   ¦  «        ¦  «        }|d
         j        dk    sJ ‚|d         j        |k    sJ ‚Œ[dS )z6
        EGG fragments must comply to PEP 440
        Ú z1!)Ú0z0.0z0.0.0)Úa0Úb0Úrc0z.post0z.dev0))ra   ra   )ú	+ubuntu.0rf   )z	+ubuntu-0rf   )z	+ubuntu_0rf   c                 óx   •‡‡‡— g | ]3Š‰	D ].Št          ‰‰‰gd g¦  «        D ]Š‰D ]}ˆˆˆfd„|D ¦   «         ‘ŒŒŒ/Œ4S )ra   c                 óB   •— g | ]}d                       ‰‰‰|g¦  «        ‘ŒS )ra   )Újoin)Ú.0ÚlocÚeÚpÚrs     €€€r   ú
<listcomp>zATestPackageIndex.test_egg_fragment.<locals>.<listcomp>.<listcomp>”   s-   ø€ Ð5Ð5Ð5¨ˆR�WŠW�a˜˜A˜s�^Ñ$Ô$Ð5Ð5Ð5r   )Úsum)
rj   Úlocsrl   rm   rn   ÚdevÚlocalÚpostÚpreÚreleasess
     @@@€€€€€r   ro   z6TestPackageIndex.test_egg_fragment.<locals>.<listcomp>“   sž   øøøø€ ð 
ð 
ð 
àØð
ð 
ð Ý˜#˜t SÐ)¨B¨4Ñ0Ô0ð	
ð 
ð Øð
ð 
ð
 ð	 6Ð5Ð5Ð5Ð5Ð5°Ð5Ñ5Ô5ð
ð 
ð 
ð 
ð 
ð 
r   z3http://example.com/example-foo.zip#egg=example-foo-r   é   N)Úlistr   r   Údistros_for_urlÚversion)r   ÚepochÚversionsr&   ÚvcÚdistsrr   rs   rt   ru   rv   s         @@@@@r   Útest_egg_fragmentz"TestPackageIndex.test_egg_fragmentw   s  øøøøø€ ð
 Øð
ˆð
ð 
ð 
ˆð

ð 
ð 
ˆð
 ˆzˆàð
ˆð
ð 
ð 
ˆð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
àð
ñ 
ô 
ˆð ð 	*ð 	*‰EˆAˆrÝÝÔ(×8Ò8ØIÈAÑMñô ñô ˆEð
 ˜”8Ô# rÒ)Ð)Ð)Ð)Ø˜”8Ô# rÒ)Ð)Ð)Ð)Ð)ð	*ð 	*r   c                 óD  — d}t           j                             ¦   «         }|dz  }|                     dddd|g¦  «         |                     dd|ddd	g¦  «         |                     ||¦  «        }|t          |¦  «        k    sJ ‚t          |j        ¦  «        d
k    sJ ‚d S )Nz7git+https://github.example/group/project@master#egg=foozproject@masterÚgitÚcloneú--quietú$https://github.example/group/projectz-CÚcheckoutÚmasteré   )r   r   r   ÚregisterÚdownloadr;   ÚlenÚcalls)r   Útmp_pathÚfpr%   r$   Úexpected_dirÚresults          r   Útest_download_git_with_revz+TestPackageIndex.test_download_git_with_rev£   s¼   € ØGˆÝÔ(×5Ò5Ñ7Ô7ˆàÐ"2Ñ2ˆØ
�ŠØØØØ2Øð
ñ 	ô 	ð 	ð 	�Š�U˜D ,°
¸IÀxÐPÑQÔQÐQà—’  XÑ.Ô.ˆà�˜\Ñ*Ô*Ò*Ð*Ð*Ð*Ý�2”8‰}Œ} Ò!Ð!Ð!Ð!Ð!Ð!r   c                 ó°   — d}t           j                             ¦   «         }|dz  }|                     dddd|g¦  «         |                     ||¦  «         d S )Nz0git+https://github.example/group/project#egg=fooÚprojectr�   r‚   rƒ   r„   )r   r   r   rˆ   r‰   )r   rŒ   r�   r%   r$   rŽ   s         r   Útest_download_git_no_revz)TestPackageIndex.test_download_git_no_rev¶   sk   € Ø@ˆÝÔ(×5Ò5Ñ7Ô7ˆà )Ñ+ˆØ
�ŠØØØØ2Øð
ñ 	ô 	ð 	ð 	�Š�s˜HÑ%Ô%Ð%Ð%Ð%r   c                 óò   — d}t           j                             ¦   «         }d}t          j        t
          j        j        |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'svn+https://svn.example/project#egg=fooz!.*SVN download is not supported.*r   )	r   r   r   r   r   r8   r9   r:   r‰   )r   rŒ   r%   r$   r=   s        r   Útest_download_svnz"TestPackageIndex.test_download_svnÄ   s³   € Ø7ˆÝÔ(×5Ò5Ñ7Ô7ˆà2ˆÝŒ]�9Ô+Ô:À#ÐFÑFÔFð 	*ð 	*Ø�NŠN˜3 Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ÁA,Á,A0Á3A0N)Ú__name__Ú
__module__Ú__qualname__r   r'   r,   r6   r>   rA   rJ   rP   r_   r   r�   r“   r•   r   r   r   r   r      sØ   € € € € € ð<ð <ð <ð9ð 9ð 9ð
9ð 
9ð 
9ð	 ð 	 ð 	 ð,ð ,ð ,ð('ð 'ð 'ð
"ð "ð "ð&ð ð ð	'ð 	'ð 	'ð**ð **ð **ðX"ð "ð "ð&&ð &ð &ð*ð *ð *ð *ð *r   r   c                   ó,   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestContentCheckersc                 ó  — t           j        j                             d¦  «        }|                     d                     d¦  «        ¦  «         |j                             ¦   «         dk    sJ ‚|                     ¦   «         sJ ‚d S )Nú3http://foo/bar#md5=f12895fdffbd45007040d2e44df98478z$You should probably not be using MD5ÚasciiÚ f12895fdffbd45007040d2e44df98478)	r   r   ÚHashCheckerÚfrom_urlÚfeedÚencodeÚhashÚ	hexdigestÚis_valid©r   Úcheckers     r   Útest_md5zTestContentCheckers.test_md5Î   s�   € ÝÔ*Ô6×?Ò?ØAñ
ô 
ˆð 	�ŠÐ;×BÒBÀ7ÑKÔKÑLÔLÐLØŒ|×%Ò%Ñ'Ô'Ð+MÒMÐMÐMÐMØ×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!r   c                 óÊ   — t           j        j                             d¦  «        }|                     d                     d¦  «        ¦  «         |                     ¦   «         sJ ‚dS )z<Content checks should succeed silently if no hash is presentz1http://foo/bar#something%20completely%20differentÚanythingr�   N©r   r   rŸ   r    r¡   r¢   r¥   r¦   s     r   Útest_other_fragmentz'TestContentCheckers.test_other_fragmentÖ   s`   € åÔ*Ô6×?Ò?Ø?ñ
ô 
ˆð 	�Š�Z×&Ò& wÑ/Ô/Ñ0Ô0Ð0Ø×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!r   c                 óÊ   — t           j        j                             d¦  «        }|                     d                     d¦  «        ¦  «         |                     ¦   «         sJ ‚dS )z0Content checks should succeed if a hash is emptyzhttp://foo/bar#md5=rª   r�   Nr«   r¦   s     r   Útest_blank_md5z"TestContentCheckers.test_blank_md5Þ   sZ   € åÔ*Ô6×?Ò?Ð@UÑVÔVˆØ�Š�Z×&Ò& wÑ/Ô/Ñ0Ô0Ð0Ø×ÒÑ!Ô!Ð!Ð!Ð!Ð!Ð!r   c                 óh   — t           j        j                             d¦  «        }|j        dk    sJ ‚d S )Nrœ   Úmd5)r   r   rŸ   r    Ú	hash_namer¦   s     r   Útest_get_hash_name_md5z*TestContentCheckers.test_get_hash_name_md5ä   s<   € ÝÔ*Ô6×?Ò?ØAñ
ô 
ˆð Ô  EÒ)Ð)Ð)Ð)Ð)Ð)r   c                 óŒ   — t           j        j                             d¦  «        }|                     d„ d¦  «        }|dk    sJ ‚d S )Nrœ   c                 ó   — | S )Nr   )Úxs    r   ú<lambda>z1TestContentCheckers.test_report.<locals>.<lambda>î   s   €  q€ r   zMy message about %szMy message about md5)r   r   rŸ   r    Úreport)r   r§   Úreps      r   Útest_reportzTestContentCheckers.test_reportê   sP   € ÝÔ*Ô6×?Ò?ØAñ
ô 
ˆð �nŠn˜[˜[Ð*?Ñ@Ô@ˆØÐ,Ò,Ð,Ð,Ð,Ð,Ð,r   N)r–   r—   r˜   r¨   r¬   r®   r²   r¹   r   r   r   rš   rš   Í   s_   € € € € € ð"ð "ð "ð"ð "ð "ð"ð "ð "ð*ð *ð *ð-ð -ð -ð -ð -r   rš   c                   ó   — e Zd Zd„ ZdS )ÚTestPyPIConfigc                 óâ   — |dz  }|                      t          d¦  «        d¬¦  «         t          j                             ¦   «         }|j        d         }|j        dk    sJ ‚|j        dk    sJ ‚d S )Nz.pypircz“
                [pypi]
                repository=https://pypi.org
                username=jaraco
                password=pity%
                zutf-8)Úencodingzhttps://pypi.orgÚjaracozpity%)Ú
write_textr   r   r   Ú
PyPIConfigÚcreds_by_repositoryÚusernameÚpassword)r   Útmp_home_dirÚpypircÚcfgÚcreds        r   Útest_percent_in_passwordz'TestPyPIConfig.test_percent_in_passwordó   s�   € Ø 	Ñ)ˆØ×ÒÝðñô ð ð 	ñ 
	
ô 
	
ð 
	
õ Ô&×1Ò1Ñ3Ô3ˆØÔ&Ð'9Ô:ˆØŒ} Ò(Ð(Ð(Ð(ØŒ} Ò'Ð'Ð'Ð'Ð'Ð'r   N)r–   r—   r˜   rÈ   r   r   r   r»   r»   ò   s#   € € € € € ð(ð (ð (ð (ð (r   r»   rw   c                  óN   — t           j        j                             d¦  «         dS )z;
    REL should not hang on a contrived attack string.
    a  < rel=                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                N)r   r   ÚRELÚsearchr   r   r   Útest_REL_DoSrÌ     s%   € õ
 ÔÔ ×'Ò'Ð(>Ñ?Ô?Ð?Ð?Ð?r   )Úhttp.clientr0   r   Úurllib.errorr    Úurllib.requestÚinspectr   r   Úsetuptools.package_indexr   Údistutils.errorsr8   r   rš   r»   ÚmarkÚtimeoutrÌ   r   r   r   ú<module>rÕ      s"  ðØ Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€à Ð Ð Ð à Ð Ð Ð ð|*ð |*ð |*ð |*ð |*ñ |*ô |*ð |*ð~"-ð "-ð "-ð "-ð "-ñ "-ô "-ð "-ðJ(ð (ð (ð (ð (ñ (ô (ð (ð( „×Ò�QÑÔð@ð @ñ Ôð@ð @ð @r   