U
    aÊ¹j}  ã                   @   s€   d Z ddlZddlZddlmZmZmZmZ ddlm	Z	 ddl
mZ ddlZG dd„ dejƒZejdd	„ ƒZd
d„ Zdd„ ZdS )zTests for distutils._modified.é    N)ÚnewerÚnewer_groupÚnewer_pairwiseÚnewer_pairwise_group)ÚDistutilsFileError)Úsupportc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestDepUtilc              	   C   sz   |   ¡ }tj |d¡}tj t¡}t t¡� t	||ƒ W 5 Q R X |  
|¡ t	|dƒsZt‚t	||ƒsht‚t	||ƒrvt‚d S )NÚnewZI_dont_exist)ÚmkdtempÚosÚpathÚjoinÚabspathÚ__file__ÚpytestÚraisesr   r   Ú
write_fileÚAssertionError)ÚselfÚtmpdirÚnew_fileÚold_file© r   úh/var/www/html/bwave/python/venv/lib/python3.8/site-packages/setuptools/_distutils/tests/test_modified.pyÚ
test_newer   s    
zTestDepUtil.test_newerc                 C   s˜   |   ¡ }tj |d¡}tj |d¡}t |¡ t |¡ tj |d¡}tj |d¡}tj t¡}tj |d¡}|  |¡ |  |¡ |  |¡ ||||fS )NÚsourcesÚtargetsÚoneÚtwoÚfour)r
   r   r   r   Úmkdirr   r   r   )r   r   r   r   r   r   Úthreer   r   r   r   Ú_setup_1234    s    




zTestDepUtil._setup_1234c                 C   s6   |   ¡ \}}}}t||g||gƒ|g|gfks2t‚d S ©N©r"   r   r   ©r   r   r   r!   r   r   r   r   Útest_newer_pairwise/   s    zTestDepUtil.test_newer_pairwisec              	   C   s`   |   ¡ \}}}}t t¡� t|g||gƒ W 5 Q R X t t¡� t||g|gƒ W 5 Q R X d S r#   )r"   r   r   Ú
ValueErrorr   r%   r   r   r   Útest_newer_pairwise_mismatch4   s
    z(TestDepUtil.test_newer_pairwise_mismatchc                 C   s   t g g ƒg g fkst‚d S r#   )r   r   )r   r   r   r   Útest_newer_pairwise_empty=   s    z%TestDepUtil.test_newer_pairwise_emptyc                 C   s2   |   ¡ \}}}}t||g||gƒg g fks.t‚d S r#   r$   r%   r   r   r   Útest_newer_pairwise_fresh@   s    z%TestDepUtil.test_newer_pairwise_freshc              	   C   s   |   ¡ }tj |d¡}t |¡ tj |d¡}tj |d¡}tj |d¡}tj t¡}|  |¡ |  |¡ |  |¡ t|||g|ƒsˆt	‚t|||g|ƒrœt	‚t 
|¡ t t¡� t|||g|ƒ W 5 Q R X t|||g|dd�rät	‚t|||g|dd�süt	‚d S )Nr   r   r   r!   Úignore)Úmissingr   )r
   r   r   r   r    r   r   r   r   r   Úremover   r   ÚOSError)r   r   r   r   r   r!   r   r   r   r   Útest_newer_groupE   s"    




zTestDepUtil.test_newer_groupN)
Ú__name__Ú
__module__Ú__qualname__r   r"   r&   r(   r)   r*   r/   r   r   r   r   r      s   	r   c                    st   dddddg}‡ fdd„|D ƒ}t |ƒD ]&\}}|jdd	d
� t |||f¡ q(tj|dd… |d |dd… d�S )zt
    Set up some older sources, a target, and newer sources.

    Returns a simple namespace with these values.
    zolder.czolder.hztarget.oznewer.cznewer.hc                    s   g | ]}ˆ | ‘qS r   r   )Ú.0Úname©Útmp_pathr   r   Ú
<listcomp>h   s     z!groups_target.<locals>.<listcomp>Ú zutf-8)ÚencodingNé   é   )ÚolderÚtargetr   )Ú	enumerateÚ
write_textr   ÚutimeÚtypesÚSimpleNamespace)r6   Ú	filenamesÚpathsÚmtimer   r   r5   r   Úgroups_target`   s    rF   c                 C   sP   t | jg| jgƒ}t | jg| jgƒ}|g g fks4t‚|| jg| jgfksLt‚d S r#   )r   r<   r=   r   r   )rF   r<   r   r   r   r   Útest_newer_pairwise_groups   s    rG   c                 C   s   t g t| d ƒƒst‚dS )z4
    Consider no sources and no target "newer".
    zdoes-not-existN)r   Ústrr   r5   r   r   r   Ú%test_newer_group_no_sources_no_targetz   s    rI   )Ú__doc__r   rA   Zdistutils._modifiedr   r   r   r   Údistutils.errorsr   Zdistutils.testsr   r   ZTempdirManagerr   ZfixturerF   rG   rI   r   r   r   r   Ú<module>   s   T
