U
    {hU                     @   sR   d dl Zd dlZd dlZd dlZd dlZddlmZmZm	Z	 G dd dej
ZdS )    N   )
write_filewrite_newer_file_parse_patternc                       sp   e Zd Z fddZ fddZdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Z  ZS )TestTestUtilsc                    s   t    t | _d S N)supersetUptempfilemkdtemptemp_dirself	__class__ >/tmp/pip-unpacked-wheel-fhl22ezh/Cython/Tests/TestTestUtils.pyr	      s    
zTestTestUtils.setUpc                    s.   | j r tj| j r t| j  t   d S r   )r   ospathisdirshutilrmtreer   tearDownr   r   r   r   r      s    zTestTestUtils.tearDownc                 C   s   t j| j|S r   )r   r   joinr   )r   filenamer   r   r   
_test_path   s    zTestTestUtils._test_pathc              	   K   sf   |  d}t||f| tj|s(tt|d}| }W 5 Q R X ||ksbtt|t|fd S )NZabcfilerb)	r   r   r   r   isfileAssertionErroropenreadrepr)r   contentexpectedkwargs	file_pathffoundr   r   r   _test_write_file   s    
zTestTestUtils._test_write_filec                 C   s   d}|  ||d d S )Nu	   abcüöäutf8)r(   encoder   textr   r   r   test_write_file_text    s    z"TestTestUtils.test_write_file_textc                 C   s$   d}| j |t|ddd d S )Nz|
        A horse is a horse,
        of course, of course,
        And no one can talk to a horse
        of course
        r)   T)dedent)r(   textwrapr.   r*   r+   r   r   r   test_write_file_dedent$   s    z$TestTestUtils.test_write_file_dedentc                 C   s   |  dd d S )Ns   ab c)r(   r   r   r   r   test_write_file_bytes-   s    z#TestTestUtils.test_write_file_bytesc                 C   sj   |  d}|  d}t|d tj|s.tt||d tj|sJttj|tj|ksftd S )Nzabcfile1.txtzabcfile2.txtabcxyz)r   r   r   r   r   r   r   getmtime)r   Zfile_path_1Zfile_path_2r   r   r   test_write_newer_file0   s    


z#TestTestUtils.test_write_newer_filec                 C   sD   |  d}t|d tj|}t||d tj||ks@td S )Nabcfile.txtr2   r3   )r   r   r   r   r4   r   r   )r   r%   mtimer   r   r   test_write_newer_file_same9   s
    

z(TestTestUtils.test_write_newer_file_samec                 C   s:   |  d}tj|rtt||d tj|s6td S )Nr6   r3   )r   r   r   existsr   r   r   )r   r%   r   r   r   test_write_newer_file_fresh@   s    
z)TestTestUtils.test_write_newer_file_freshc                 C   sT   |  tdd |  tdd |  tdd |  tdd |  td	d d S )
Npattern)NNr;   z/start/:pattern)startNr;   z:/end/  pattern)Nendr;   z/start/:/end/  pattern)r<   r=   r;   z/start/:/end/pattern)assertEqualr   r   r   r   r   test_parse_patternF   s(    z TestTestUtils.test_parse_pattern)__name__
__module____qualname__r	   r   r   r(   r-   r0   r1   r5   r8   r:   r?   __classcell__r   r   r   r   r   
   s   			r   )os.pathr   Zunittestr
   r/   r   Z	TestUtilsr   r   r   ZTestCaser   r   r   r   r   <module>   s   