o
    f                     @   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|   t | _d S N)superr   setUptempfilemkdtemptemp_dirself	__class__ V/var/www/html/mig_web/myenv/lib/python3.10/site-packages/Cython/Tests/TestTestUtils.pyr	      s   zTestTestUtils.setUpc                    s2   | j rtj| j rt| j  tt|   d S r   )	r   ospathisdirshutilrmtreer   r   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      zTestTestUtils._test_pathc                 K   s~   |  d}t||fi | tj|sJ t|d}| }W d    n1 s*w   Y  ||ks=J t|t|fd S )Nabcfilerb)r   r   r   r   isfile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/   r   z#TestTestUtils.test_write_file_bytesc                 C   sj   |  d}|  d}t|d tj|sJ t||d tj|s%J tj|tj|ks3J d S )Nzabcfile1.txtzabcfile2.txtabcxyz)r   r   r   r   r   r   getmtime)r   file_path_1file_path_2r   r   r   test_write_newer_file2   s   


 z#TestTestUtils.test_write_newer_filec                 C   sD   |  d}t|d tj|}t||d tj||ks J d S )Nabcfile.txtr3   r4   )r   r   r   r   r5   r   )r   r&   mtimer   r   r   test_write_newer_file_same;   s
   

z(TestTestUtils.test_write_newer_file_samec                 C   s:   |  d}tj|rJ t||d tj|sJ d S )Nr9   r4   )r   r   r   existsr   r   )r   r&   r   r   r   test_write_newer_file_freshB   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_patternH   s(   z TestTestUtils.test_parse_pattern)__name__
__module____qualname__r	   r   r   r)   r.   r1   r2   r8   r;   r=   rB   __classcell__r   r   r   r   r      s    			r   )os.pathr   unittestr
   r0   r   	TestUtilsr   r   r   TestCaser   r   r   r   r   <module>   s   