a
    åze†  ã                   @   s˜   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ G dd„ de
je
je
jejƒZd	d
„ Zedkr”eeƒ ƒ dS )é    N)Úinstall_lib)Ú	Extension)Úsupport)ÚDistutilsOptionError)Úrun_unittestc                   @   sB   e Zd Zdd„ Ze ejd¡dd„ ƒZdd„ Z	dd	„ Z
d
d„ ZdS )ÚInstallLibTestCasec                 C   s€   |   ¡ d }t|ƒ}| ¡  |  |jd¡ |  |jd¡ d|_|  t|j¡ d|_|  t|j¡ d|_| ¡  |  |jd¡ d S )Né   r   ÚfooÚ4Ú2é   )Úcreate_distr   Zfinalize_optionsÚassertEqualÚcompileÚoptimizeZassertRaisesr   )ÚselfÚdistÚcmd© r   ú6/usr/lib/python3.9/distutils/tests/test_install_lib.pyÚtest_finalize_options   s    z(InstallLibTestCase.test_finalize_optionszbyte-compile disabledc                 C   sš   |   ¡ \}}t |¡ t|ƒ}d |_|_tj |d¡}|  |d¡ | 	|g¡ t
jjddd}t
jjd|jd}|  tj |¡¡ |  tj |¡¡ d S )Nr   zfoo.pyz# python fileÚ )Úoptimization)r   ÚosÚchdirr   r   r   ÚpathÚjoinÚ
write_fileÚbyte_compileÚ	importlibÚutilÚcache_from_sourceZ
assertTrueÚexists)r   Úproject_dirr   r   ÚfZpyc_fileZpyc_opt_filer   r   r   Útest_byte_compile%   s    
ÿz$InstallLibTestCase.test_byte_compilec                 C   sœ   |   ¡ \}}t |¡ t d¡ t|ƒ}d |_|_|  ¡ |_tj	 
|dd¡}|  |d¡ tddgƒg|j_dg|j_d|j_| ¡ }|  t|ƒd|¡ d S )	NÚspamr   ú__init__.pyú# python packager	   Úxxxúsetup.pyé   )r   r   r   Úmkdirr   r   r   ÚmkdtempÚinstall_dirr   r   r   r   ÚdistributionÚext_modulesÚpackagesÚscript_nameZget_outputsr   Úlen)r   r#   r   r   r$   Zoutputsr   r   r   Útest_get_outputs5   s    



z#InstallLibTestCase.test_get_outputsc                 C   sœ   |   ¡ \}}t |¡ t d¡ t|ƒ}d |_|_|  ¡ |_tj	 
|dd¡}|  |d¡ tddgƒg|j_dg|j_d|j_| ¡ }|  t|ƒd|¡ d S )	Nr&   r   r'   r(   r	   r)   r*   r   )r   r   r   r,   r   r   r   r-   r.   r   r   r   r   r/   r0   r1   r2   Z
get_inputsr   r3   )r   r#   r   r   r$   Zinputsr   r   r   Útest_get_inputsI   s    



z"InstallLibTestCase.test_get_inputsc                 C   sr   |   ¡ d }t|ƒ}d|_d|_tj}dt_z| g ¡ W |t_n|t_0 |  d| jd d | jd d  ¡ d S )Nr   Tzbyte-compiling is disabledr   r   )	r   r   r   r   ÚsysÚdont_write_bytecoder   ZassertInZlogs)r   r   r   Zold_dont_write_bytecoder   r   r   Útest_dont_write_bytecode]   s    ÿz+InstallLibTestCase.test_dont_write_bytecodeN)Ú__name__Ú
__module__Ú__qualname__r   ÚunittestZskipIfr6   r7   r%   r4   r5   r8   r   r   r   r   r      s   
r   c                   C   s
   t  t¡S )N)r<   Z	makeSuiter   r   r   r   r   Ú
test_suiteo   s    r=   Ú__main__)r6   r   Úimportlib.utilr   r<   Zdistutils.command.install_libr   Zdistutils.extensionr   Zdistutils.testsr   Zdistutils.errorsr   Ztest.supportr   ZTempdirManagerZLoggingSilencerZEnvironGuardZTestCaser   r=   r9   r   r   r   r   Ú<module>   s    ýa