
    ϶vg                         d 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_verbosity8   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_verbosityC   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_filesV   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_relativea   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_listdiri   s    Z'))<<< 	* 	*fm%?
 ?
 	* 	* -#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                       e Zd Zd Z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\    r   r   FailPathrX   z   s#        < < < < <r   ra   foodirN)pathlibr<   rP   rQ   r   rR   r   exists)r   r   tmp_pathra   r   s        r   test_mkpath_exception_uncachedz*TestDirUtil.test_mkpath_exception_uncacheds   s    	< 	< 	< 	< 	<w| 	< 	< 	< H$]6455 	% 	%88F##$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ==??"""v}}s   A!!A%(A%N)r]   r^   r_   r,   rP   markskipifr3   r8   r@   rE   rI   rU   rf   r`   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   rc   r0   unittest.mockrM   	distutilsr   r   distutils.dir_utilr   r   r   r   r	   distutils.testsr
   jaraco.pathr=   r   rP   fixturer   TempdirManagerr!   r`   r   r   <module>rq      s4   # # 				         & & & & & & & &              $ # # # # #       2 2 2g g g g g'( g g g g gr   