a
    ze                     @   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re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   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__)__doc__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