o
    LK&h                     @   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   ]/var/www/html/venv/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   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)   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    

