
    sh                         S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	  SSK
JrJrJrJrJr  SSKJr  SSKrSSKrSSKr\R,                  " SS9S 5       r " S	 S
\R0                  5      rg)zTests for distutils.dir_util.    N)dir_utilerrors)	copy_treecreate_treeensure_relativemkpathremove_tree)supportT)autousec                 .   U R                   nUR                  5       n[        R                  R	                  US5      Ul        [        R                  R	                  UR
                  S5      Ul        [        R                  R	                  US5      Ul        g )Ndeepheredeep2)instancemkdtempospathjoinroot_targettargettarget2)requestmonkeypatchdistutils_managed_tempdirselftmp_dirs        }/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/setuptools/_distutils/tests/test_dir_util.pystuffr      sa    DllnGww||GV4D'',,t//8DK77<<1DL    c                       \ rS rSrS r\R                  R                  S5      S 5       rS r	S r
S rS rS	 rS
 rSrg)TestDirUtil    c                 t   [        U R                  SS9  UR                  (       a   e[        U R                  SS9  [        U R                  SS9  SU R                   3/nUR
                  U:X  d   eUR                  5         [        U R                  SS9  SU R                   S3/nUR
                  U:X  d   eg )NFverboseT	creating z
removing 'z' (and everything under it))r   r   recordsr	   r   messagesclearr   caplogwanteds      r   !test_mkpath_remove_tree_verbosity-TestDirUtil.test_mkpath_remove_tree_verbosity!   s    t{{E*>>!!D$$e4t{{D)dkk]+,&(((D$$d3t//00KLM&(((r   zplatform.system() == 'Windows'c                    [         R                  " S5      n[         R                  " U5        [        U R                  S5        [        R
                  " [         R                  " U R                  5      R                  5      SU) -  :X  d   e[        U R                  S5        [        R
                  " [         R                  " U R                  5      R                  5      SU) -  :X  d   eg )N   i  im  )r   umaskr   r   statS_IMODEst_moder   )r   r1   s     r   test_mkpath_with_custom_mode(TestDirUtil.test_mkpath_with_custom_mode/   s     
t{{E"||BGGDKK0889UeV^KKKt||U#||BGGDLL199:eufnLLLr   c                    [        U R                  / SQSS9  UR                  / :X  d   e[        U R                  SS9  SU R                   3/n[        U R                  / SQSS9  UR                  U:X  d   e[        U R                  SS9  g )N)onetwothreeFr$   r&   T)r   r   r(   r	   r*   s      r   test_create_tree_verbosity&TestDirUtil.test_create_tree_verbosity9   s    D$$&=uM"$$$D$$e4d../01D$$&=tL&(((D$$e4r   c                 T   [        U R                  SS9  [        U R                  U R                  SS9  UR                  / :X  d   e[        U R                  SS9  [        U R                  SS9  [        R                  " U R                  5      S-  n[        R                  R                  SS0U R                  5        SU SU R                   3/n[        U R                  U R                  SS9  UR                  U:X  d   e[        U R                  SS9  [        U R                  SS9  g )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_verbosity$TestDirUtil.test_copy_tree_verbosityD   s    t{{E*$++t||U;"$$$D$$e4t{{E*4;;'(28^4dkkBVHD78$++t||T:&(((D$$e4DLL%0r   c                 d   [        U R                  SS9  [        R                  R	                  SSS.U R                  5        [        U R                  U R                  5        [        R                  " U R                  5      S/:X  d   e[        U R                  SS9  [        U R                  SS9  g )NFr$   r?    )r>   z
.nfs123abcr>   )r   r   rA   r   rB   r   r   r   listdirr	   r   r   s    r   #test_copy_tree_skips_nfs_temp_files/TestDirUtil.test_copy_tree_skips_nfs_temp_filesW   sz    t{{E*^2FT$++t||,zz$,,'H:555D$$e4DLL%0r   c                     [         R                  S:X  a#  [        S5      S:X  d   e[        S5      S:X  d   eg [        S5      S:X  d   e[        S5      S:X  d   eg )N/z	/home/foozhome/fooz	some/pathzc:\home\fooz
c:home\foozhome\foo)r   sepr   rI   s    r   test_ensure_relative TestDirUtil.test_ensure_relativeb   sY    66S=";/:===";/;>>>"?3}DDD";/;>>>r   c                 :   [         R                  " S[        5       S9   [        R                  " [
        R                  5         U R                  S   n[        R                  " US5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)z;
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_listdir/TestDirUtil.test_copy_tree_exception_in_listdirj   sa    
 JJ|;MM&334--#CsD) 5 <;44 <;s#   %B'A;*B;
B		B
Bc                 P    " S S[         R                  5      nUS-  n[        R                  " [        R
                  5         [        U" U5      5        SSS5        UR                  5       (       a   e[        U5        UR                  5       (       d   eg! , (       d  f       NH= f)zB
Caching should not remember failed attempts.

pypa/distutils#304
c                   v    \ rS rSrS r\R                  S:  a  \R                  " 5       R                  r	Sr
gSr
g)<TestDirUtil.test_mkpath_exception_uncached.<locals>.FailPath|   c                     [        S5      e)NzFailed to create directory)rV   )r   argskwargss      r   mkdirBTestDirUtil.test_mkpath_exception_uncached.<locals>.FailPath.mkdir}   s    :;;r   )       N)__name__
__module____qualname____firstlineno__re   sysversion_infopathlibr@   _flavour__static_attributes__ri   r   r   FailPathr`   |   s-    < ')"<<>22 *r   rs   foodirN)rp   r@   rW   rX   r   rY   r   exists)r   r   tmp_pathrs   r   s        r   test_mkpath_exception_uncached*TestDirUtil.test_mkpath_exception_uncachedu   su    	3w|| 	3 H$]]64458F#$ 6 ==??""v}} 65s   B
B%ri   N)rj   rk   rl   rm   r-   rW   markskipifr5   r;   rD   rJ   rO   r\   rw   rr   ri   r   r   r!   r!       sK    ) [[89M :M	51&	1?	*r   r!   )__doc__r   rp   r2   rn   unittest.mockrT   	distutilsr   r   distutils.dir_utilr   r   r   r   r	   distutils.testsr
   jaraco.pathrA   r   rW   fixturer   TempdirManagerr!   ri   r   r   <module>r      sc    # 	   
  &  $    2 2k'(( kr   