o
    eF	                     @   sN   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 G dd dej	Z
dS )    N   )
write_filewrite_newer_filec                       sh   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  ZS )TestTestUtilsc                    s   t t|   t | _d S N)superr   setUptempfilemkdtemptemp_dirself	__class__ JD:\Projects\ConvertPro\env\Lib\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 )NZ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   Zfile_path_1Z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.txtr1   r2   )r   r   r   r   r3   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 )Nr5   r2   )r   r   r   existsr   r   )r   r$   r   r   r   test_write_newer_file_freshB   s   
z)TestTestUtils.test_write_newer_file_fresh)__name__
__module____qualname__r   r   r   r'   r,   r/   r0   r4   r7   r9   __classcell__r   r   r   r   r      s    			r   )Zos.pathr   Zunittestr	   r.   r   Z	TestUtilsr   r   ZTestCaser   r   r   r   r   <module>   s   