
    ;ȋh                         d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZmZmZmZmZ ddlmZ ddlZddlZddlZ ej        d          d             Z G d	 d
ej                  ZdS )zTests for distutils.dir_util.    N)dir_utilerrors)	copy_treecreate_treeensure_relativemkpathremove_tree)supportT)autousec                 $   | j         }|                                }t          j                            |d          |_        t          j                            |j        d          |_        t          j                            |d          |_        d S )Ndeepheredeep2)instancemkdtempospathjoinroot_targettargettarget2)requestmonkeypatchdistutils_managed_tempdirselftmp_dirs        f/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/setuptools/_distutils/tests/test_dir_util.pystuffr      sd    DllnnGw||GV44D',,t/88DK7<<11DLLL    c                   ~    e Zd Zd Zej                            d          d             Zd Zd Z	d Z
d Zd Zd	 Zd
S )TestDirUtilc                 R   t          | j        d           |j        rJ t          | j        d           t          | j        d           d| j         g}|j        |k    sJ |                                 t          | j        d           d| j         dg}|j        |k    sJ d S )NFverboseT	creating z
removing 'z' (and everything under it))r   r   recordsr	   r   messagesclearr   caplogwanteds      r   !test_mkpath_remove_tree_verbosityz-TestDirUtil.test_mkpath_remove_tree_verbosity!   s    t{E****>!!!D$e4444t{D))))+dk++,&((((D$d3333Lt/LLLM&((((((r   zplatform.system() == 'Windows'c                    t          j        d          }t          j        |           t          | j        d           t	          j        t          j        | j                  j                  d| z  k    sJ t          | j        d           t	          j        t          j        | j                  j                  d| z  k    sJ d S )N   i  im  )r   umaskr   r   statS_IMODEst_moder   )r   r/   s     r   test_mkpath_with_custom_modez(TestDirUtil.test_mkpath_with_custom_mode/   s     
t{E"""|BGDK00899UeV^KKKKt|U###|BGDL119::eufnLLLLLLr   c                    t          | j        g dd           |j        g k    sJ t          | j        d           d| j         g}t          | j        g dd           |j        |k    sJ t          | j        d           d S )N)onetwothreeFr#   r%   T)r   r   r'   r	   r)   s      r   test_create_tree_verbosityz&TestDirUtil.test_create_tree_verbosity9   s    D$&=&=&=uMMMM"$$$$D$e44440d.001D$&=&=&=tLLLL&((((D$e444444r   c                 (   t          | j        d           t          | j        | j        d           |j        g k    sJ t          | j        d           t          | j        d           t          j        | j                  dz  }t          j        
                    ddi| j                   d| d| j         g}t          | j        | j        d           |j        |k    sJ t          | j        d           t          | j        d           d S )NFr#   ok.txtsome contentzcopying z -> T)r   r   r   r   r'   r	   r   r   Pathjaracobuild)r   r*   a_filer+   s       r   test_copy_tree_verbosityz$TestDirUtil.test_copy_tree_verbosityD   s   t{E****$+t|U;;;;"$$$$D$e4444t{E****4;''(28^4dkBBB7V77778$+t|T::::&((((D$e4444DL%000000r   c                 N   t          | j        d           t          j                            ddd| j                   t          | j        | j                   t          j        | j                  dgk    sJ t          | j
        d           t          | j        d           d S )NFr#   r;    )r:   z
.nfs123abcr:   )r   r   r=   r   r>   r   r   r   listdirr	   r   r   s    r   #test_copy_tree_skips_nfs_temp_filesz/TestDirUtil.test_copy_tree_skips_nfs_temp_filesW   s    t{E****^2FFTTT$+t|,,,z$,''H:5555D$e4444DL%000000r   c                     t           j        dk    r,t          d          dk    sJ t          d          dk    sJ d S t          d          dk    sJ t          d          dk    sJ d S )N/z	/home/foozhome/fooz	some/pathzc:\home\fooz
c:home\foozhome\foo)r   sepr   rD   s    r   test_ensure_relativez TestDirUtil.test_ensure_relativeb   s}    6S==";//:====";//;>>>>>>"?33}DDDD";//;>>>>>>r   c                 ,   t          j        dt                                5  t          j        t
          j                  5  | j        d         }t          j	        |d           ddd           n# 1 swxY w Y   ddd           dS # 1 swxY w Y   dS )zK
        An exception in listdir should raise a DistutilsFileError
        z
os.listdir)side_effectN)
mockpatchOSErrorpytestraisesr   DistutilsFileErrortempdirsr   r   )r   srcs     r   #test_copy_tree_exception_in_listdirz/TestDirUtil.test_copy_tree_exception_in_listdirj   s
   
 J|;;;	* 	*M&344	* 	* -#CsD)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s5   B	#A1%B	1A5	5B	8A5	9B		BBc                 R    G d dt           j                  }|dz  }t          j        t          j                  5  t           ||                     ddd           n# 1 swxY w Y   |                                rJ t          |           |                                sJ dS )zZ
        Caching should not remember failed attempts.

        pypa/distutils#304
        c                   V    e Zd Zd Zej        dk     r ej                    j        ZdS dS )<TestDirUtil.test_mkpath_exception_uncached.<locals>.FailPathc                      t          d          )NzFailed to create directory)rO   )r   argskwargss      r   mkdirzBTestDirUtil.test_mkpath_exception_uncached.<locals>.FailPath.mkdir}   s    :;;;r   )      N)	__name__
__module____qualname__r\   sysversion_infopathlibr<   _flavour r   r   FailPathrX   |   sE        < < < '))'7<>>2 *)r   rg   foodirN)rd   r<   rP   rQ   r   rR   r   exists)r   r   tmp_pathrg   r   s        r   test_mkpath_exception_uncachedz*TestDirUtil.test_mkpath_exception_uncachedu   s    	3 	3 	3 	3 	3w| 	3 	3 	3 H$]6455 	% 	%88F##$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ==??"""v}}s   A!!A%(A%N)r_   r`   ra   r,   rP   markskipifr3   r8   r@   rE   rI   rU   rk   rf   r   r   r!   r!       s        ) ) ) [899M M :9M	5 	5 	51 1 1&	1 	1 	1? ? ?	* 	* 	*    r   r!   )__doc__r   rd   r0   rb   unittest.mockrM   	distutilsr   r   distutils.dir_utilr   r   r   r   r	   distutils.testsr
   jaraco.pathr=   r   rP   fixturer   TempdirManagerr!   rf   r   r   <module>rv      s=   # # 				   



       & & & & & & & &              $ # # # # #       2 2 2k k k k k'( k k k k kr   