
    ?wg                         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 ddl	m
Z
 ddlZddlZe
j                   G d de
j                               Zy)	z%Tests for distutils.command.build_py.    N)build_py)Distribution)DistutilsFileError)supportc                       e Zd Zd Zd Zej                  j                  d      d        Zej                  j                  d      d        Z	d Z
d Zd Zy	)
TestBuildPyc                    | j                         }t        j                  j                  ddd|       | j                         }t	        dgd|id      }t
        j                  j                  |d      |_        t        j                  d|      |j                  d	<   dg|_        dd
gi|_        d|i|_        t        |      }d|_        |j!                          |j                  |j                  k(  sJ |j#                          t%        |j'                               dk(  sJ t
        j                  j                  |d      }t        j(                  |      }t
        j                  j                  |d      }d|v sJ d
|v sJ t*        j,                  r"t
        j                  j/                  |      rJ y t        j(                  |      }dt*        j0                  j2                   d|v sJ y )Nz# Pretend this is a package.zInfo about this package)__init__.py
README.txtpkg)packagespackage_dirsetup.pyF)force	build_libbuildr   T   __pycache__r
   z	__init__..pyc)mkdtempjaracopathr   r   osjoinscript_namer   DummyCommandcommand_objr   package_datar   r   compileensure_finalizedrunlenget_outputslistdirsysdont_write_bytecodeexistsimplementation	cache_tag)	selfsourcesdestinationdistcmdpkgdestfilespycache_dir	pyc_filess	            `/var/www/horilla/myenv/lib/python3.12/site-packages/setuptools/_distutils/tests/test_build_py.pytest_package_datazTestBuildPy.test_package_data   s   ,,.=7 	
 lln%%AQRS77<<<$+$8$8;%
! "\N3!7+tn4#4#4444	
 3??$%***'',,{E2

7#ggll7M:%%%u$$$""ww~~k2222

;/Is11;;<DAYNNN    c                    | j                         }t        j                  j                  dddid|       t	        j
                  |       t        dgddiddgid      }t        j                  j                  |d      |_        dg|_	        |j                          	 |j                          y # t        $ r | j                  d	       Y y w xY w)
N testfiler
   docr   doc/*)r   r   r   r   r   z/failed package_data test when package_dir is ''r   r   r   r   r   chdirr   r   r   script_argsparse_command_linerun_commandsr   failr*   r+   r-   s      r3   test_empty_package_dirz"TestBuildPy.test_empty_package_dir<   s    ,,."j"5EFP
!2;"WI.
  77<<<#9!	I! 	IIIGH	I   B/ /CCzsys.dont_write_bytecodec                    | j                  dg      \  }}t        j                  |       | j                  dd       t	        |      }d|_        d|_        |j                          |j                          t        j                  |j                        }t        |      ddgk(  sJ t        j                  t        j                  j                  |j                  d            }|dt        j                  j                   d	gk(  sJ y )
N
boiledeggs
py_modulesboiledeggs.pyimport antigravityTherer   boiledeggs.r   )create_distr   r=   
write_filer   r   r   finalize_optionsr!   r$   sortedr   r   r%   r(   r)   )r*   project_dirr-   r.   founds        r3   test_byte_compilezTestBuildPy.test_byte_compileQ   s     ,,,GT
)=>tn	

3==)e} @@@@

277<<}EF;s'9'9'C'C&DDIJJJJr5   c                 8   | j                  dg      \  }}t        j                  |       | j                  dd       t	        |      }d|_        d|_        d|_        |j                          |j                          t        j                  |j                        }t        |      ddgk(  sJ t        j                  t        j                  j                  |j                  d            }d	t        j                  j                    d
}t        |      |gk(  sJ y )NrF   rG   rI   rJ   F   rK   r   rL   z
.opt-1.pyc)rM   r   r=   rN   r   r   optimizer   rO   r!   r$   rP   r   r   r%   r(   r)   )r*   rQ   r-   r.   rR   expects         r3   test_byte_compile_optimizedz'TestBuildPy.test_byte_compile_optimizeda   s     ,,,GT
)=>tn	

3==)e} @@@@

277<<}EFs11;;<JGe}(((r5   c                    | j                         }t        j                  j                  dddi ddi|       t	        j
                  |       t        dgddgid      }t        j                  j                  |d      |_        dg|_	        |j                          	 |j                          y
# t        $ r | j                  d	       Y y
w xY w)zR
        A directory in package_data should not be added to the filelist.
        r   r7   )r8   otherdirr9   r;   )r   r   r   r   z0failed package_data when data dir includes a dirNr<   rB   s      r3   test_dir_in_package_dataz$TestBuildPy.test_dir_in_package_datas   s    
 ,,.#%$&$&	 	
 	%57)BTUV77<<<#9!	J! 	JIIHI	JrD   c                 &   | j                         d   }t        |      }d|_        d|_        t        j
                  }dt        _        	 |j                  g        |t        _        d|j                  d   j                  v sJ y # |t        _        w xY w)NrU   Tzbyte-compiling is disabledr   )	rM   r   r   rV   r%   r&   byte_compilerecordsmessage)r*   caplogr-   r.   old_dont_write_bytecodes        r3   test_dont_write_bytecodez$TestBuildPy.test_dont_write_bytecode   s    !!$tn"%"9"9"&	>R &=C#+v~~a/@/H/HHHH '>C#s   	B Bc                    | j                         }t        j                  j                  ddddiii|       t	        j
                  |       dddgdd}t        |      }|j                  d      }|j                          |j                         }t        |      d	k(  sJ |d
   d   }|j                  t        j                  d      dk(  sJ |j                          t        d |j                  D              rJ y)aU  
        Originally distutils implementation did not account for PEP 420
        and included warns for package directories that did not contain
        ``__init__.py`` files.
        After the acceptance of PEP 420, these warnings don't make more sense
        so we want to ensure there are not displayed to not confuse the users.
        nsr   z	module.pyr7   zns.pkgr   )namer   r   r   rU   r   /zns/pkg/module.pyc              3   0   K   | ]  }d |v xr d|v   yw)zpackage init filez	not foundN ).0msgs     r3   	<genexpr>zCTestBuildPy.test_namespace_package_does_not_warn.<locals>.<genexpr>   s(      
BE3&=;#+==
s   N)r   r   r   r   r   r=   r   get_command_objrO   find_all_modulesr"   replacesepr!   anymessages)r*   r`   tmpattrsr-   r.   modulesmodule_paths           r3   $test_namespace_package_does_not_warnz0TestBuildPy.test_namespace_package_does_not_warn   s     lln4%+r):!;<cB
 x(%

 E" "":.&&(7|q   ajn""2663/3EEEE	 
IO
 
 	
 
 
r5   N)__name__
__module____qualname__r4   rC   pytestmarkskipifrS   rX   r[   rb   rw   ri   r5   r3   r   r      sk    *OXI* [[12K 3K [[12) 3)"J@I !
r5   r   )__doc__r   r%   distutils.command.build_pyr   distutils.corer   distutils.errorsr   distutils.testsr   jaraco.pathr   r{   combine_markersTempdirManagerr   ri   r5   r3   <module>r      sJ    + 	 
 / ' / #   	u
'(( u
 u
r5   