
    n&ph                         S 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	J
r
  SSKJr  SSKrSSKrSSKJr  SSKJr   " S	 S
\R(                  5      rg)zTests for distutils.spawn.    N)DistutilsExecError)find_executablespawn)support)
unix_shell   )py39c                   r    \ rS rSr\R
                  R                  S5      S 5       rS r\	S 5       r
S rSrg)		TestSpawn   zos.name not in ('nt', 'posix')c                    U R                  5       n[        R                  S:w  a;  [        R                  R                  US5      nU R                  US[         S35        O2[        R                  R                  US5      nU R                  US5        [        R                  " US5        [        R                  " [        5         [        U/5        S S S 5        [        R                  S:w  a;  [        R                  R                  US5      nU R                  US[         S35        O2[        R                  R                  US5      nU R                  US	5        [        R                  " US5        [        U/5        g ! , (       d  f       N= f)
Nwin32zfoo.shz#!z
exit 1zfoo.batzexit 1i  z
exit 0zexit 0)mkdtempsysplatformospathjoin
write_filer   chmodpytestraisesr   r   )selftmpdirexes      Y/var/www/html/venv/lib/python3.13/site-packages/setuptools/_distutils/tests/test_spawn.py
test_spawnTestSpawn.test_spawn   s    <<7"'',,vx0COOC2j\!:;'',,vy1COOC*
e]]-.3%L / <<7"'',,vx0COOC2j\!:;'',,vy1COOC*
ese /.s   E==
Fc           	         U R                  US5      nUR                  nUR                  S5      R                  n[        U5      n[        R
                  " U5      n[        X6S9nXu:X  d   e[        R                  S:X  a  [        XFS9nXu:X  d   eU   [        U5      nXs:X  d   e S S S 5        SU-   n[        XS9nUb   e[        R                  " 5        n	SU	S'   [        R                  " SUSS	9   [        R                  " S
U5         [        U5      nUb   eU   [        U5      nXs:X  d   e S S S 5        S S S 5        S S S 5        S S S 5        [        R                  " 5        n	[        R                  U	S'   [        R                  " SSSS	9   [        R                  " S
S5         [        U5      nUb   eU   [        U5      nXs:X  d   e S S S 5        S S S 5        S S S 5        S S S 5        [        R                  " 5        n	U	R                  SS 5        [        R                  " S[         SS9   [        R                  " S
U5         [        U5      nXu:X  d   e S S S 5        S S S 5        [        R                  " SUSS	9   [        R                  " S
S5         [        U5      nXu:X  d   e S S S 5        S S S 5        S S S 5        g ! , (       d  f       GN)= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNZ= f! , (       d  f       GNd= f! , (       d  f       GNn= f! , (       d  f       GNx= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz.exe )r   r   
dontexist_PATHzdistutils.spawn.os.confstrT)return_valuecreatezdistutils.spawn.os.defpath)side_effectr$   )_make_executablenamewith_suffixstrr   Pathr   r   r   	os_helperEnvironmentVarGuardmockpatchr   pathseppop
ValueError)
r   tmp_pathprogram_pathprogramprogram_noeextfilenametmp_dirrvdont_exist_programenvs
             r   test_find_executableTestSpawn.test_find_executable/   s   ,,Xv>##%11"5::|$))H% W3~~<<7" >B>!>  )B= = 
 *G3/>zz **,CK

0wt 

7A$W-z!z (1B=(=  B -" **,**CK

7bQUV

7<$W-z!z (1B=(=  = W - **,GGFD! 

0jQU 

7A$W-~%~ B 

0wt 

7<$W-~%~ = -,U W, W BA  -,6 W =< WV -,. BA  =<  -,s   KL1K=	K+K	0K+8K= L%*MM'L3:L!	L3MM-N/0M;M)M;$N/NN.N6N/
K
K(#K++
K:5K==
L	L
L!
L0+L33
M=M
M	M
M&)
M83M;;
N
	N/
NN
N,	(N//
N=c                     U R                  S5      R                  U5      nUR                  SSS9  UR                  [        R
                  5        U$ )Nr4   r    zutf-8)encoding)joinpathr(   
write_textr   statS_IXUSR)r2   extr4   s      r   r&   TestSpawn._make_executable   sG     ##I.::3?20dll#    c                     [         R                  " [        5       n[        S/5        S S S 5        S[	        WR
                  5      ;   d   eg ! , (       d  f       N*= f)Nzdoes-not-existzcommand 'does-not-exist' failed)r   r   r   r   r)   value)r   ctxs     r   test_spawn_missing_exe TestSpawn.test_spawn_missing_exe   sA    ]]-.##$% /0C		NBBB /.s   A
A N)__name__
__module____qualname____firstlineno__r   markskipifr   r;   staticmethodr&   rI   __static_attributes__rK   rE   r   r   r      sE    [[89 :6P&d  CrE   r   )__doc__r   rA   r   unittest.mockr-   distutils.errorsr   distutils.spawnr   r   distutils.testsr   r   r   test.supportr   compatr	   r+   TempdirManagerr   rK   rE   r   <module>r\      s?      	  
  / 2 #   # %{C&& {CrE   