U
    aÊ¹j3  ã                   @   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 5 Q R X d}ddg|dœfg}t t¡� | |¡ W 5 Q R X ddi}ddg|dœfg}t t¡� | |¡ W 5 Q R X ddi}ddg|dœfg}t t¡� | |¡ W 5 Q R X tj|jd�|_g g f|_	d	d
dœ}ddg|dœfg}| |¡ dddgg|j
d k�sBt‚|jjj�rRt‚|jjjdk�sft‚|j ¡  d|_	| |¡ |jjjdk�s”t‚|jjjdk�s¨t‚d S )NÚexampleÚsourceszbroken.cZsome_stringzsource.c©r   Úobj_depsÚ ©Úspec©úglobal.h©ú	example.h©r   ú	example.cr   r   r   r   é   )r   r   ÚpytestZraisesr   Úbuild_librariesr   Ú	MagicMockÚcompilerÚreturn_valueÚ	call_argsÚAssertionErrorÚcompileZcalledZcreate_static_libZ
call_countZ
reset_mock)ÚselfÚ
mock_newerÚdistÚcmdÚlibsr
   © r"   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/tests/test_build_clib.pyÚtest_build_libraries   s<    




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r|t 	|t
|ƒ¡}qbd||dœfg}| |¡ ||jd	 ks¨t‚d S )
Nr   za-example.cr   r   r   r   r   r	   r   )r   r   r   r   r   r   r   r   ÚrandomÚsampleÚlenr   )	r   r   r   r    Zoriginal_sourcesr   r
   r!   Z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%   Zunittestr   r   Zsetuptools.command.build_clibr   Zsetuptools.distr   Údistutils.errorsr   r   r"   r"   r"   r#   Ú<module>   s   