o
    NZh                     @   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)Zautousec                 C   s(   | j }|d |_|d |_|d |_d S )Nf1f2Zd1)instancesourcetarget
target_dir)requestZtmp_pathself r   Y/var/www/auris/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   Z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   Z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   Pz6TestFileUtil.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$   errnoZ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   r-   r	   r$   Z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    r+   r,   r.   r/   )r   r   r   r   r   r2   r"   r#   r$   r   r	   r3   r4   )r   r6   r7   r8   fnr   r   r    test_copy_file_hard_link_failureR   s   z-TestFileUtil.test_copy_file_hard_link_failureN)__name__
__module____qualname__r   r(   r*   r9   r;   r   r   r   r   r      s    	
r   )__doc__r)   r   Zunittest.mockr"   Zdistutils.errorsr   Zdistutils.file_utilr   r   Zjaraco.pathr   r%   Zfixturer   r   r   r   r   r   <module>   s    

