
    n&ph!                     6   S r SSK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
  SSKJr  SSKJrJ	r	  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSKrS r\R8                  \R:                  R=                  S5       " S S\R>                  5      5       5       r g)z$Tests for distutils.command.install.    N)	sysconfig)install)	build_ext)INSTALL_SCHEMESr   )Distribution)DistutilsOptionError)	Extension)missing_compiler_executablesupport)is_mingwc                 4    U [         R                  " S5      -   $ )N
EXT_SUFFIX)r   get_config_var)modnames    [/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/tests/test_install.py_make_ext_namer      s    Y--l;;;    save_envc                   x    \ rS rSr\R
                  R                  SSS9S 5       rS rS r	S r
S	 rS
 rS rSrg)TestInstall   z=platform.system() == "Windows" and sys.version_info > (3, 11)zpypa/distutils#148)reasonc           	      0   U R                  5       n[        R                  R                  US5      n[	        SS05      n[        R                  R                  US5      Ul        [        R                  " U[        R                  R                  US5      S9UR                  S'   [        U5      nX$l
        UR                  5         UR                  U:X  d   eUR                  U:X  d   eS n[        R                  R                   R#                  S	S
5      n[        R                  R                  USU5      nU" UR$                  U5        ['        [        SS5      n[        R                  R                  X(U5      n	U" UR(                  U	5        U" UR*                  U5        U" UR,                  [        R                  R                  USUS5      5        U" UR.                  [        R                  R                  US5      5        U" UR0                  U5        g )Ninstallationnamefoopkgzsetup.pylib)
build_base	build_libbuildc                     [         R                  R                  U 5      n [         R                  R                  U5      nX:X  d   eg N)ospathnormpath)gotexpecteds     r   
check_path=TestInstall.test_home_installation_scheme.<locals>.check_path8   s4    ''""3'Cww''1H?"?r   cpythonpython
platlibdirincludebin)mkdtempr#   r$   joinr   script_namer   DummyCommandcommand_objr   homeensure_finalizedinstall_baseinstall_platbasesysimplementationr   replaceinstall_libgetattrinstall_platlibinstall_purelibinstall_headersinstall_scriptsinstall_data)
selfbuilddirdestinationdistcmdr(   	impl_namelibdir_platlibdirr,   s
             r   test_home_installation_scheme)TestInstall.test_home_installation_scheme   s    <<>ggll8^<VX./77<<*=$+$8$8ggll8U3%
!
 dm;...##{222	#
 &&++33IxH	k5)<3??F+c<7WW\\+IF
3&&
33&&/GGLLiHE	
 	3&&[%(HI3##[1r   c                   ^  T R                  5       T l        [        R                  n[        R                  nUR                  [        S[        R                  R                  T R                  S5      5        UR                  [        S[        R                  R                  T R                  S5      5        UR                  [        S[        R                  5        UR                  [        S[        R                  5        U 4S jnUR                  [        R                  SU5        S H  nU[        ;   a  M   e   [        SS	05      n[        U5      nUR                   VV	V
s/ s H  u  poPM	     nn	nn
S
U;   d   eSUl        [        R                  R                  [        R                  5      (       a   e[        R                  R                  [        R                  5      (       a   eUR!                  5         [        R                  R                  [        R                  5      (       d   e[        R                  R                  [        R                  5      (       d   eSUR"                  ;   d   eSUR"                  ;   d   e[        R                  R%                  UR&                  [        R                  5      n[        R(                  S:X  am  [+        5       (       d^  [        R                  R%                  [        R                  R-                  U5      U5      n[        R                  R                  US5      nO[.        R0                  " SS5      n[        R                  R                  US	5      n[        R                  R3                  U5      [        R                  R3                  U5      :X  d   eg s  sn
n	nf )N	USER_BASEB	USER_SITESc                    > U R                  S5      (       a/  [        R                  R                  TR                  U SS  -   5      $ U $ )N~   )
startswithr#   r$   r%   tmpdir)r$   rB   s    r   _expanduser/TestInstall.test_user_site.<locals>._expanduserV   s;    s##ww''d12h(>??Kr   
expanduser)nt_user
posix_userr   xxuserTuserbaseusersitentIncluder    )r/   rU   siterO   rM   setattrr#   r$   r0   install_moduler   r   r   user_optionsr\   existsr5   config_varsrelpathr?   r   r   dirnamer   get_python_incnormcase)rB   monkeypatch	orig_site	orig_baserV   keyrE   rF   r   shortlabeloptionsactual_headers	site_pathr-   expect_headerss   `               r   test_user_siteTestInstall.test_user_siteK   s    llnNN	NN	D+rww||DKK/MND+rww||DKK/MNNKHNKH	
 	BGG\;?,C/))) - VTN+dm 362B2BC2B.D42BC     77>>$..111177>>$..1111 	 ww~~dnn----ww~~dnn----S__,,,S__,,,)<)<dnnM77d?8::	(BINIggll9i8G..q"5Ggt4ww/2773C3CN3SSSS9 Ds   #N;c                    [        SSS.5      n[        U5      nUR                  5         UR                  SS/:X  d   eUR                  S:X  d   eUR
                  S:X  d   eS/Ul        UR                  5         UR                  S/:X  d   eUR                  S:X  d   eUR
                  S:X  d   eS =Ul        Ul        UR                  5         UR                  b   eUR                  S:X  d   eUR
                  b   eSUl        [        R                  " [        5         UR                  5         S S S 5        g ! , (       d  f       g = f)Nr[   z	path,dirs)r   
extra_pathr$   dirsra   zpath,dirs,again)	r   r   handle_extra_pathry   
extra_dirs	path_filepytestraisesr   rB   rE   rF   s      r   test_handle_extra_path"TestInstall.test_handle_extra_path   s.   TEFdm 	~~&&!1111~~'''}}&&& !~~&)))~~'''}}&&& ,0/#.~~%%%~~###}}$$$ +]]/0!!# 100s    D::
Ec                     [        SS05      n[        U5      nSUl        SUl        [        R
                  " [        5         UR                  5         S S S 5        S Ul        SUl        [        R
                  " [        5         UR                  5         S S S 5        S Ul        SUl	        [        R
                  " [        5         UR                  5         S S S 5        g ! , (       d  f       N= f! , (       d  f       Na= f! , (       d  f       g = f)Nr   r[   prefixbaser4   r\   )
r   r   r   r6   r~   r   r   finalize_optionsr4   r\   r   s      r   test_finalize_options!TestInstall.test_finalize_options   s    VTN+dm 
!]]/0  " 1  ]]/0  " 1
 
]]/0  " 10 10 10 10s$   CC.C?
C+.
C<?
Dc                    U R                  5       nU R                  S/S/S9u  p#[        R                  " U5        U R	                  SS5        U R	                  SS5        [        U5      nXCR                  S'   Xl        [        R                  R                  US5      Ul
        UR                  5         UR                  5         [        R                  " UR                  5      R                  S	S
9nUR!                  5        Vs/ s H#  n[        R                  " U5      R"                  PM%     nnSS[$        R&                  R(                   S3SSR*                  " [$        R,                  S S 6 /nXx:X  d   eg s  snf )Nhellosayhi)
py_modulesscriptszhello.pyzdef main(): print('o hai')zfrom hello import main; main()r   filelistutf-8encodingzhello.z.pycUNKNOWN-0.0.0-py{}.{}.egg-info   )r/   create_distr#   chdir
write_filer   r3   rootr$   r0   recordr5   runpathlibPath	read_text
splitlinesr   r8   r9   	cache_tagformatversion_info)	rB   install_dirproject_dirrE   rF   contentlinefoundr'   s	            r   test_recordTestInstall.test_record   s=   lln ,,	G9,U

$@A!ABdm&)#WW\\+z:
	,,szz*44g4F5<5G5G5IJ5ITd#((5IJS''112$7,33S5E5Ebq5IJ	
     Ks   *E6c                    [        5       nUb  [        R                  " SU< S35        U R                  5       nU R	                  [        SS/5      /S9u  p4[        R                  " U5        [        R                  " U5        [        U5      n[        R                  " U5        UR                  5         [        U5      nXR                  S'   XTR                  S'   X!l        [        R                   R#                  US5      Ul        UR                  5         UR'                  5         [(        R*                  " UR$                  5      R-                  S	S
9nUR/                  5        Vs/ s H#  n[(        R*                  " U5      R0                  PM%     nn[3        S5      SR4                  " [6        R8                  S S 6 /n	X:X  d   eg s  snf )NzThe z command is not foundr[   z
xxmodule.c)ext_modulesr   r   r   r   r   r   r   )r
   r~   skipr/   r   r	   r#   r   r   copy_xxmodule_cr   fixup_build_extr5   r   r3   r   r$   r0   r   r   r   r   r   r   r   r   r   r8   r   )
rB   rF   r   r   rE   buildextcmdr   r   r   r'   s
             r   test_record_extensions"TestInstall.test_record_extensions   sw   )+?KK$sg%:;<lln ,,"4,89 - 
 	,o,$$&dm&)#(3%WW\\+z:
	,,szz*44g4F5<5G5G5IJ5ITd#((5IJ4 ,33S5E5Ebq5IJ
     Ks   $*Gc                     UR                  [        SS5        UR                  [        R                  5        U R                  5         [        S UR                   5       5      (       d   eg )NDEBUGTc              3   d   #    U  H&  oR                   [        R                  :X  d  M"  Uv   M(     g 7fr"   )levelnologgingr   ).0recs     r   	<genexpr>.TestInstall.test_debug_mode.<locals>.<genexpr>   s     Q.3KK7==4P33.s   !0	0)rc   rd   	set_levelr   r   r   anyrecords)rB   caplogrl   s      r   test_debug_modeTestInstall.test_debug_mode   sM    NGT:'Q&..QQQQQr   )rU   N)__name__
__module____qualname____firstlineno__r~   markxfailrJ   rv   r   r   r   r   r   __static_attributes__ r   r   r   r      sS    
 [[G#  '2	'2R5Tn$:#0!2!@Rr   r   )!__doc__r   r#   r   rb   r8   	distutilsr   distutils.commandr   rd   distutils.command.build_extr   distutils.command.installr   distutils.corer   distutils.errorsr   distutils.extensionr	   distutils.testsr
   r   distutils.utilr   r~   r   combine_markersr   usefixturesTempdirManagerr   r   r   r   <module>r      s    *  	   
  7 1 > ' 1 ) @ # < 	$ZRZR % ZRr   