o
    uvXjs
  ã                	   @   sÊ   d dl Z d dlZddlmZmZmZmZmZmZ zd dl	m
Z
 ee
dƒ ee
dƒ W n eefy9   d dlZ
Y nw zd dlmZ W n eyQ   d dlmZ Y nw G dd	„ d	ejƒZG d
d„ deƒZdS )é    Né   )ÚdistributionÚentry_pointsÚfilesÚPackageNotFoundErrorÚversionÚdistributions)Ú	resourcesr   Úas_file)Ú	ExitStackc                   @   sX   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTestZipzimportlib_metadata.tests.datac                 C   sb   t  | j¡ |¡}| j  t  |¡¡}|j d¡sJ |jƒ‚tj	 
dt|ƒ¡ | j  tj	jd¡ d S )Nzexample-r   )r	   r   ÚrootÚjoinpathÚenter_contextr
   ÚnameÚ
startswithÚsysÚpathÚinsertÚstrÚcallbackÚpop)ÚselfÚfilenameÚpkg_fileÚfile© r   ú^/var/www/html/myproject/venv/lib/python3.10/site-packages/importlib_metadata/tests/test_zip.pyÚ_fixture_on_path   s
   zTestZip._fixture_on_pathc                 C   ó$   t ƒ | _|  | jj¡ |  d¡ d S )Nzexample-21.12-py3-none-any.whl©r   r	   Ú
addCleanupÚcloser   ©r   r   r   r   ÚsetUp    ó   zTestZip.setUpc                 C   ó   |   tdƒd¡ d S )NÚexampleú21.12©ÚassertEqualr   r#   r   r   r   Útest_zip_version'   ó   zTestZip.test_zip_versionc                 C   s8   |   t¡� tdƒ W d   ƒ d S 1 sw   Y  d S )Nzdefinitely-not-installed)ÚassertRaisesr   r   r#   r   r   r   Útest_zip_version_does_not_match*   s   
"ÿz'TestZip.test_zip_version_does_not_matchc                 C   s>   t tƒ d ƒ}|d }|  |jd¡ |d }|  |jd¡ d S )NÚconsole_scriptsr'   zexample:mainÚExample)Údictr   r*   Úvalue)r   ÚscriptsÚentry_pointr   r   r   Útest_zip_entry_points.   s
   zTestZip.test_zip_entry_pointsc                 C   s   |   tdƒ d¡¡ d S )Nr'   zdoes not exist)ÚassertIsNoner   Ú	read_textr#   r   r   r   Útest_missing_metadata5   s   zTestZip.test_missing_metadatac                 C   r&   )Nr0   r(   r)   r#   r   r   r   Útest_case_insensitive8   r,   zTestZip.test_case_insensitivec                 C   ó2   t dƒD ]}t|j |¡ƒ}d|v sJ |ƒ‚qd S )Nr'   z.whl/©r   r   ÚdistÚlocate_file©r   r   r   r   r   r   Ú
test_files;   ó   þzTestZip.test_filesc                 C   s,   t ttjd d… d�ƒ}t|ƒdksJ ‚d S )Né   )r   )Úlistr   r   r   Úlen)r   Údistsr   r   r   Útest_one_distribution@   s   zTestZip.test_one_distributionN)Ú__name__Ú
__module__Ú__qualname__r   r   r$   r+   r.   r5   r8   r9   r?   rE   r   r   r   r   r      s    r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestEggc                 C   r   )Nzexample-21.12-py3.6.eggr    r#   r   r   r   r$   F   r%   zTestEgg.setUpc                 C   r:   )Nr'   z.egg/r;   r>   r   r   r   r?   M   r@   zTestEgg.test_filesN)rF   rG   rH   r$   r?   r   r   r   r   rI   E   s    rI   )r   ÚunittestÚ r   r   r   r   r   r   Ú	importlibr	   ÚgetattrÚImportErrorÚAttributeErrorÚimportlib_resourcesÚ
contextlibr   Úcontextlib2ÚTestCaser   rI   r   r   r   r   Ú<module>   s"     
ÿÿ/