o
    5‘ði3  ã                   @   sR   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dlm	Z	 G dd„ dƒZ
dS )é    N)Úmock)Ú
build_clib)ÚDistribution)ÚDistutilsSetupErrorc                   @   s0   e Zd Ze d¡dd„ ƒZe d¡dd„ ƒZdS )ÚTestBuildCLibz2setuptools.command.build_clib.newer_pairwise_groupc                 C   sð  t ƒ }t|ƒ}dddifg}t t¡� | |¡ W d   ƒ n1 s#w   Y  d}ddg|dœfg}t t¡� | |¡ W d   ƒ n1 sHw   Y  ddi}ddg|dœfg}t t¡� | |¡ W d   ƒ n1 sow   Y  ddi}ddg|dœfg}t t¡� | |¡ W d   ƒ n1 s–w   Y  tj|jd�|_g g f|_	d	d
dœ}ddg|dœfg}| |¡ g d¢g|j
d v sÇJ ‚|jjjrÎJ ‚|jjjdks×J ‚|j ¡  d|_	| |¡ |jjjdksíJ ‚|jjjdksöJ ‚d S )NÚexampleÚsourceszbroken.cÚsome_stringzsource.c©r   Úobj_depsÚ ©Úspec©úglobal.h©ú	example.h©r   ú	example.cr   )r   r   r   r   é   )r   r   ÚpytestÚraisesr   Úbuild_librariesr   Ú	MagicMockÚcompilerÚreturn_valueÚ	call_argsÚcompileÚcalledÚcreate_static_libÚ
call_countÚ
reset_mock)ÚselfÚ
mock_newerÚdistÚcmdÚlibsr   © r'   ú_/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/tests/test_build_clib.pyÚtest_build_libraries   sD   ÿÿÿÿ




z"TestBuildCLib.test_build_librariesc           	      C   s²   t ƒ }t|ƒ}tj|jd�|_g g f|_ddg}|}dddœ}d||dœfg}| |¡ |jd	 }||krAt 	|t
|ƒ¡}||ks5d||dœfg}| |¡ ||jd	 ksWJ ‚d S )
Nr   za-example.cr   r   r   r   r   r
   r   )r   r   r   r   r   r   r   r   ÚrandomÚsampleÚlen)	r"   r#   r$   r%   Úoriginal_sourcesr   r   r&   Úcomputed_call_argsr'   r'   r(   Ú!test_build_libraries_reproducible<   s    



ÿ
z/TestBuildCLib.test_build_libraries_reproducibleN)Ú__name__Ú
__module__Ú__qualname__r   Úpatchr)   r/   r'   r'   r'   r(   r      s
    
.r   )r*   Úunittestr   r   Úsetuptools.command.build_clibr   Úsetuptools.distr   Údistutils.errorsr   r   r'   r'   r'   r(   Ú<module>   s    