B
    Üö›\†  ã               @   sœ   d Z 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 )z)Tests for distutils.command.install_data.é    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   ú1lib/python3.7/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   z__init__.pyz# python packager	   Úxxxz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   z__init__.pyz# python packager	   r'   zsetup.pyr   )r   r   r   r)   r   r   r   r*   r+   r   r   r   r   r,   r-   r.   r/   Z
get_inputsr   r0   )r   r#   r   r   r$   Zinputsr   r   r   Útest_get_inputsI   s    



z"InstallLibTestCase.test_get_inputsc             C   sl   |   ¡ d }t|ƒ}d|_d|_tj}dt_z| g ¡ W d |t_X |  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skipIfr3   r4   r%   r1   r2   r5   r   r   r   r   r      s
   r   c               C   s
   t  t¡S )N)r9   Z	makeSuiter   r   r   r   r   Ú
test_suiteo   s    r:   Ú__main__)Ú__doc__r3   r   Úimportlib.utilr   r9   Zdistutils.command.install_libr   Zdistutils.extensionr   Zdistutils.testsr   Zdistutils.errorsr   Ztest.supportr   ZTempdirManagerZLoggingSilencerZEnvironGuardZTestCaser   r:   r6   r   r   r   r   Ú<module>   s    ^