o
    5‘ðiÂ  ã                   @   sr   d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
ZddlZejdd�dd„ ƒZG d	d
„ d
ƒZdS )zTests for distutils.file_util.é    N)ÚDistutilsFileError)Ú	copy_fileÚ	move_fileT)Úautousec                 C   s(   | j }|d |_|d |_|d |_d S )NÚf1Úf2Úd1)ÚinstanceÚsourceÚtargetÚ
target_dir)ÚrequestÚtmp_pathÚself© r   úi/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/_distutils/tests/test_file_util.pyÚstuff   s   

r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestFileUtilc                 C   sÖ   t j | jdi¡ t| j| jdd� |jrJ ‚t| j| jdd� t| j| jdd� d| j› d| j› �g}|j|ks;J ‚t| j| jdd� | ¡  t 	| j
¡ t| j| j
dd� d| j› d| j
› �g}|j|ksiJ ‚d S )Núsome contentF©ÚverboseTzmoving z -> )ÚjaracoÚpathÚbuildr
   r   r   ÚmessagesÚclearÚosÚmkdirr   )r   ÚcaplogÚwantedr   r   r   Útest_move_file_verbosity   s   
z%TestFileUtil.test_move_file_verbosityc              	   C   s˜   t jdtddƒd��8 t t¡� tj | j	di¡ t
| j	| jdd� W d   ƒ n1 s-w   Y  W d   ƒ d S W d   ƒ d S 1 sEw   Y  d S )Nú	os.renameÚwrongé   ©Úside_effectú	spam eggsFr   )ÚmockÚpatchÚOSErrorÚpytestÚraisesr   r   r   r   r
   r   r   ©r   r   r   r   Ú)test_move_file_exception_unpacking_rename-   s   ÿþPûz6TestFileUtil.test_move_file_exception_unpacking_renamec              
   C   sÎ   t jdttjdƒd��R t jdtddƒd��/ t t¡� tj	 
| jdi¡ t| j| jdd� W d   ƒ n1 s9w   Y  W d   ƒ n1 sHw   Y  W d   ƒ d S W d   ƒ d S 1 s`w   Y  d S )	Nr!   r"   r$   z	os.unlinkr#   r&   Fr   )r'   r(   r)   ÚerrnoÚEXDEVr*   r+   r   r   r   r   r
   r   r   r,   r   r   r   Ú)test_move_file_exception_unpacking_unlink6   s   ÿþýú€P z6TestFileUtil.test_move_file_exception_unpacking_unlinkc              
   C   sê   t j | jdi¡ z
t | j| j¡ W n ty- } z|  d|› �¡ W Y d }~n
d }~ww | j 	¡  t 
| j¡}t| j| jdd� t 
| j¡}t 
| j¡}tj ||¡s[J ||fƒ‚tj ||¡shJ ||fƒ‚| jjdd�dkssJ ‚d S )Nr   z	os.link: Úhard©Úlinkúutf-8©Úencoding)r   r   r   r
   r   r3   r   r)   ÚskipTestÚunlinkÚstatr   ÚsamestatÚ	read_text)r   ÚeÚstÚst2Úst3r   r   r   Útest_copy_file_hard_link@   s   €ÿ
z%TestFileUtil.test_copy_file_hard_linkc                 C   sÚ   t j | jdi¡ t | j¡}tjdtddƒd�� t	| j| j
dd� W d   ƒ n1 s-w   Y  t | j¡}t | j
¡}tj ||¡sKJ ||fƒ‚tj ||¡rXJ ||fƒ‚| j| j
fD ]}|jdd	�dksjJ ‚q^d S )
Nr   zos.linkr   zlinking unsupportedr$   r1   r2   r4   r5   )r   r   r   r
   r   r9   r'   r(   r)   r   r   r:   r;   )r   r=   r>   r?   Úfnr   r   r   Ú test_copy_file_hard_link_failureR   s   ÿÿz-TestFileUtil.test_copy_file_hard_link_failureN)Ú__name__Ú
__module__Ú__qualname__r    r-   r0   r@   rB   r   r   r   r   r      s    	
r   )Ú__doc__r.   r   Úunittest.mockr'   Údistutils.errorsr   Údistutils.file_utilr   r   Újaraco.pathr   r*   Úfixturer   r   r   r   r   r   Ú<module>   s    

