o
    JAf                     @   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rMee  dS 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   7/usr/lib/python3.10/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      |   \}}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      



z#InstallLibTestCase.test_get_outputsc                 C   r&   )	Nr'   r   r(   r)   r	   r*   r+   r   )r   r   r   r-   r   r   r   r.   r/   r   r   r   r   r0   r1   r2   r3   Z
get_inputsr   r4   )r   r#   r   r   r$   Zinputsr   r   r   test_get_inputsI   r6   z"InstallLibTestCase.test_get_inputsc                 C   sr   |   d }t|}d|_d|_tj}dt_z
|g  W |t_n|t_w | 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skipIfr8   r9   r%   r5   r7   r:   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__)r8   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?   r;   r   r   r   r   <module>   s&    a