python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_venv.cpython-312.opt-2.pyc

Αe\N	ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZmZddlmZmZmZddlZddlZddlmZmZ	ddl Z ejDe	jFe	jHk(xse	jJe	jLk7dZ'eserejPdeddZ)Gdd	ejTZ+Gd
de+Z,e'Gdd
e+Z-e.dk(rej^yy#e!$rdZ YwxYw)N)
captured_stdoutcaptured_stderr*skip_if_broken_multiprocessing_synchronizeverboserequires_subprocess
is_emscriptenis_wasirequires_venv_with_pip
TEST_HOME_DIRrequires_resource)can_symlinkEnvironmentVarGuardrmtree)patchMockz:cannot run venv.create from within a venv on this platformz)venv is not available on Emscripten/WASI.c<tj|tjtj|}|j\}}|jrEt
r|rt
|jddtj|j|||||fS)N)stdoutstderrencodingutf-8backslashreplace)	
subprocessPopenPIPEcommunicate
returncoderprintdecodeCalledProcessError)cmdrpouterrs     B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_venv.pycheck_outputr%-s	A}}HC||s#**W&89:++
LL#sC)	)8Oc6eZdZ	dZdZdZdZdZdddZy	)
BaseTesticFtjjtj|_tjdk(rd|_d|_d|_	n+d|_ddtjddzf|_d	|_	tj}tjj|d
|_tjdk(rFtjj!|r'tjj#|sd|_yd
|_y)NntScriptsLibIncludebinlibpython%d.%dincludewin32TF)ospathrealpathtempfilemkdtempenv_dirnamebindirr0r3sysversion_info_base_executablesplitexeplatformlexistsexistscannot_link_exe)self
executables  r$setUpzBaseTest.setUp?sww''(8(8(:;
77d?#DKDH$DLDK}s/?/?/CCDDH$DL))
77==,R0LLG#
+GGNN:.#'D #(D r&c.t|jyN)rr;rGs r$tearDownzBaseTest.tearDownRst||r&ct5}t5}||i|ddddddjjfS#1swY1xYw#1swY5xYwrK)rrgetvalue)rGfuncargskwargsoutputerrors      r$run_with_capturezBaseTest.run_with_captureUsd

	&& "
&ed%f%
&	& %.."222
&
&	&	&s!A	AAA	AA$cVtjj|jg|SrK)r6r7joinr;)rGrQs  r$get_env_filezBaseTest.get_env_file[sww||DLL0400r&rrct|j|d|5}|j}ddd|S#1swYSxYw)NrrY)openrXread)rGrrQfresults     r$get_text_file_contentszBaseTest.get_text_file_contents^sC
#$##T*C(
C	qVVXF	
	
s	7AN)	__name__
__module____qualname__maxDiffrIrMrUrXr`r&r$r(r(;s($G)&316=r&r(c	,eZdZ	dZdZdZdZdZdZdZ	e
dZe
d	Ze
e
jed
dZej$dk(rd
Zn,dddddej(ddzfddej(ddzdffZdZdZdZdZdZdZe
jed
dZe
dZe
jed
dZe
jej>dk(d d!Z e
d"Z!e
d#Z"e
jFej>dk(d$d%Z$e
jej$d&k(d'd(Z%d)Z&e
jFej>dk(d$e
d*Z'd+Z(y),	BasicTestc~|j|}|jtjj	|yrK)rX
assertTruer6r7isdir)rGrQfns   r$rjzBasicTest.isdirfs-
T


%

b)*r&c	t|j|jtj|j|jyrK)rr;rUvenvcreate_check_output_of_default_createrLs r$test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathjs9		t||dkk4<<8,,.r&c	t|j|jtjtj|j|jyrK)rr;rUrmrnpathlibPathrorLs r$test_defaults_with_pathlib_pathz)BasicTest.test_defaults_with_pathlib_pathrsB		t||dkk7<<+EF,,.r&cJ|j|j|j|j|j|j|j	d}tjddk(xr(tjdk(xrtjdk7}|r/|jtjj|n.|jtjj||j!d}tj"}tjj%|}|j'd|z||j'dtjj)tj*z|tjd	k(rd
nd}dtj*d
|d|j,}|j'|||j	|j|j.}tjj|sJ|j	|j}	t1d|	zt1dtj2|	z|jtjj|d|zy)Nlib64Pposixdarwin
pyvenv.cfgz	home = %szexecutable = %sr*z	 --copiesz
command = z -m venvz --without-pip Contents of %r:    %rFile %r should exist.)rjr=r3r0rXstructcalcsizer6r<r>rCrir7islinkassertFalserEr`r@dirnameassertInr8rHr;rBrlistdir)
rGr!
conditionsdatarHr7copiesr rkbds
          r$roz)BasicTest._check_output_of_default_createzs

4;;

4<< 

DHHg&s+q01rww'7I1||x/	OOBGGNN1-.RWW^^A./**<8))
wwz*

kD($/

'gg&&s~~678<	>ww}+3>>*(6(/$,,X

c4 


t{{DHH
5ww~~b!""4;;/B#b()(RZZ^+,r*,Cb,HIr&cgd}|D]\}}t|j|stj}ntjd
i||dvrdndi}t	|_t	|_|j|j|j|jd}|sdD]}|j|d|tjdk(r|d	k(r|j|d|y)N))NN)symlinksz--copies)with_pip
--without-pip)system_site_packages--system-site-packages)clear--clear)upgrade	--upgrade)upgrade_deps--upgrade-deps)prompt--prompt)rrFTr{)rrrrrz
command = .* r*rre)rr;rm
EnvBuilderrupgrade_dependencies
_setup_piprUrnr`assertNotRegexr6r<assertRegex)rGattrsattroptbrs      r$test_config_file_command_keyz&BasicTest.test_config_file_command_keys	
	?ID#4<< OO%OOSd.F&FUDQS%)VA"6AL!!!((DLL9..|<D6FC''se.DEF$4#3  -u'=>%	?r&ctjj|jd}t	|jtj}|j|j|j|j|j}|jd}|j|jd|z|jd|t	|jtjd}|j|j|j|j|j}|jd}|j|jd|jd|t	|jtjd	}tjjtj }|j|j|j|j|j}|jd}|j|jd|z|jd
|z|y)Nr{z(%s) z	prompt = z	My prompt)rz(My prompt) zprompt = 'My prompt'
.zprompt = '%s'
)r6r7rAr;rrmrrUrnensure_directoriesr`assertEqualrassertNotInrbasenamegetcwd)rGenv_namebuildercontextrcwds      r$test_promptzBasicTest.test_prompts77==.q1t||//#gnndll;,,T\\:**<88);<d+t||//5gnndll;,,T\\:**<88

.5t||//-ggryy{+gnndll;,,T\\:**<837

'#-t4r&ctj}tjdk(rdnd}tj
j
tjd}tj5}tj
jtj
j|||tjdk(r<tj
jtj
jfd}|j|}td|5|j|ddddddy#1swYxYw#1swYyxYw)Nr5r+r/rc	tjj|d|d<j|dddddgy)Nr-mpipinstallr)r6r7normcaser)r rR
expect_exerGs  r$pip_cmd_checkerz<BasicTest.test_upgrade_dependencies.<locals>.pip_cmd_checkersG))#a&1A  "!#

r&zvenv.subprocess.check_output)rmrr>rCr6r7rArHr9TemporaryDirectoryrrWr8rrr)rGrbin_path
python_exefake_env_dirrfake_contextrs`      @r$test_upgrade_dependenciesz#BasicTest.test_upgrade_dependenciess//# # 79UWW]]3>>215


(
(
*	;l))\8Z@J||w&WW--bgg.>.>z.JK

#55lCL5G
;,,\:
;-	;	;,
;
;-	;	;s%2B1E#E5EE	EEc"	t|j|jtj|jt
jj|j|j|j}|ddg}d|jfd|jfdtjfdtjffD]J\}}d|z|d<t|\}}|j|j|j!|Ly)N-cprefixexec_prefixbase_prefixbase_exec_prefixzimport sys; print(sys.%s)r2)rr;rUrmrnr6r7rWr=rBr>rrr%rstripencode)rGenvpyr rexpectedr"r#s       r$
test_prefixeszBasicTest.test_prefixess		t||dkk4<<8T\\4;;AdD!
t||$
DLL)
COO,
!5!56	!8	EFH
169CF#C(HCSYY[(//*;VD	Er&c	t|j|jtj|jdt
jj|j|j|j}|ddg}dddttjfdtjfdtjffD]d\}}|j|5d	|z|d
<t!|\}}|j#|j%|j'|dddfy#1swYqxYw)NFrrzget_preferred_scheme("prefix")rmzget_default_scheme()rmis_python_build()get_makefile_filename()get_config_h_filename()%import sysconfig; print(sysconfig.%s)r2rr;rUrmrnr6r7rWr=rBstr	sysconfigis_python_buildget_makefile_filenameget_config_h_filenamesubTestr%rrrrGrr callrr"r#s       r$test_sysconfigzBasicTest.test_sysconfigs 		t||dkk4<<%HT\\4;;AdD!
7,
 #i&?&?&A"BC
&	(G(G(IJ
&	(G(G(IJL	FND(d#
F@4GA',S  hoo.?E
F
F	F
F
F
*AD;;E	zNeeds symlinksc	t|j|jtj|jdt
jj|j|j|j}|ddg}dddttjfdtjfdtjffD]d\}}|j|5d	|z|d
<t!|\}}|j#|j%|j'|dddfy#1swYqxYw)NTrrrrrrrrr2rrs       r$test_sysconfig_symlinksz!BasicTest.test_sysconfig_symlinkss 		t||dkk4<<$GT\\4;;AdD!
7,
 #i&?&?&A"BC
&	(G(G(IJ
&	(G(G(IJL	FND(d#
F@4GA',S  hoo.?E
F
F	F
F
Frr5))r+)r.r,)r-
site-packages)r/)r3)r0r0r1Nr2rc6	|D]}tjj|jg|}tj|tjj||}t|d5}|j
ddddy#1swYxYw)NwbStill here?)r6r7rWr;mkdirr\write)rGpathsfilenamesubdirsdrkr^s       r$create_contentszBasicTest.create_contents>s		(GT\\4G4AHHQKa*Bb$
(1'
(
(		(
(
(s2BB	c	|j|jdtj|j|jD]}tjj|jg|dz}|jt
jj|t|d5}|j|jddddtjd}|j|j|jD]]}tjj|jg|dz}|jt
jj|_y#1swY=xYw)Nfoo)rrbrTr)rENV_SUBDIRSrmrnr;r6r7rWrirEr\rr]rr)rGrrkr^rs     r$test_overwrite_existingz!BasicTest.test_overwrite_existingJs(		
T--u5DLL!''	;GdllBg.@BBOOBGGNN2./b$
;1  >:
;
;	;//-t||$''	1GdllBg.@BBRWW^^B/0	1
;
;s3!E<<F	cvtj|D]}tjj||}tjj	|stjj|rtj|wtjj|st|yrK)	r6rr7rWrisfileremoverjr)rGr7rks   r$clear_directoryzBasicTest.clear_directory\so**T"	BdB'Bww~~b!RWW^^B%7		"
r"r
	r&c|jddD]}tjj|jg|}t|d5}|j
dddd|jttftj|j|j|jy#1swY\xYw)Nrr&)
rr6r7rWr;r\rassertRaises
ValueErrorOSErrorrmrnr)rGrrkr^s    r$test_unoverwritable_failsz#BasicTest.test_unoverwritable_failsds%%bq)	/Edll3U3Bb$
1
z73T[[$,,O  .	/

s	B66B?	c	dD]O}tj|}|j|j|j|j|j|j|j|j
|j|j|j|j}tjj|sJ|j|j}td|ztdtj|z|j!tjj|d|zRy)NFT)rr}r~r)rmrrUrnr;rjr=r3r0rXrBr6r7rErrri)rGrrrkrs     r$test_upgradezBasicTest.test_upgradems	%	NGoog6G!!'..$,,?JJt{{#JJt||$DJJ!""4;;9B77>>"%&&t{{3'",-hB/0OOBGGNN2.0G"0LM	Nr&c	dD]]\}}tjd|}|j|j|j	d}|jd|z|_y)N))Ttrue)FfalseT)rrr{z"include-system-site-packages = %s
)rmrrnr;r`r)rGsspsrrs     r$test_isolationzBasicTest.test_isolationsb	9	KFCooDsKGNN4<<(..|<DMM?!CTJ		Kr&c	dD]}tjd|}|j|j|j	|j
|j}|s^|jr/|jtjj||jtjj|y)NrTrr)
rmrrnr;rXr=rBrFrr6r7rri)rGuslrrks    r$test_symlinkingzBasicTest.test_symlinkings	!
	8CooD3?GNN4<<(""4;;9B''$$RWW^^B%78OOBGGNN2$67
	8r&c	t|j|jtj|jt
jjt
jj|j|j|j}t|ddg\}}|j|j|jy)Nr!import sys; print(sys.executable))rr;rUrmrnr6r7rWr8r=rBr%rrrrGrr"r#s    r$test_executablezBasicTest.test_executables		t||dkk4<<8RWW--dll;![[$((4/!12Selln5r&c	t|jtjdd}|j	|jt
jjt
jj|j|j|j}t|ddg\}}|j|j|jy)NTrrrrr;rmrrnr6r7rWr8r=rBr%rrrrGrrr"r#s     r$test_executable_symlinksz"BasicTest.test_executable_symlinkss		t||//t<t||$RWW--dll;![[$((4/!12Selln5r&r*zonly relevant on WindowscJ	t|jtjj	tjj|jd}t
jd}|j|tjj	||jd}tjj	||j|j}t|d|jddgd	\}}|j|jd
y)NuϼўТλФЙTrzactivate.bat&rzprint(0)oemrY0)rr;r6r7rWr8rmrrnr=rBr%rr)rGr;ractivaterr"r#s       r$test_unicode_in_batch_filez$BasicTest.test_unicode_in_batch_files		t||'',,rww//=~N//-w77<<nEWdkk488<
sDHHdJ7
S	
c*r&c	tt|j|jtj
|jtjjtjj|j|j|j}t|ddg\}}|j|jdjy)Nrzrfrom multiprocessing import Pool; pool = Pool(1); print(pool.apply_async("Python".lower).get(3)); pool.terminate()python)rrr;rUrmrnr6r7rWr8r=rBr%rrrrs    r$test_multiprocessingzBasicTest.test_multiprocessings		34t||dkk4<<8RWW--dll;![[$((4
! !S
	
hoo&78r&c	tt|j|jtj
|jtjjtjj|j|j|j}tjjtd}tj||gy)Nz_test_venv_multiprocessing.py)rrr;rUrmrnr6r7rWr8r=rBrr
check_call)rGrscripts   r$test_multiprocessing_recursionz(BasicTest.test_multiprocessing_recursions		34t||dkk4<<8RWW--dll;![[$((4m-LMufo.r&znot relevant on Windowsctjd}||jdt|jtjd}|j|jtjj|j|jd}tjj|jd}t|d5}|jd|d	dddt||g\}}|j|d
j!|j|d
j!y#1swYZxYw)Nbashzbash required for this testTrrztest_strict.shwzset -euo pipefail
source z
deactivate
r|)shutilwhichskipTestrr;rmrrnr6r7rWr=r\rr%rr)rGrrrtest_scriptr^r"r#s        r$%test_deactivate_with_strict_bash_optsz/BasicTest.test_deactivate_with_strict_bash_optss||F#<MM78t||//-t||$77<<dkk:Fggll4<<1AB
+s
#	$q
GG&Z(##
$	$ { 34Sbiik*biik*
	$	$sE		Erzzonly relevant on macOSct|jtj}|j	|jt
jjt
jj|j|j|j}t|ddg\}}|j|jdjy)Nrz5import os; print("__PYVENV_LAUNCHER__" in os.environ)Falserrs     r$test_macos_envzBasicTest.test_macos_envst||//#t||$RWW--dll;![[$((4C!EFSgnn&67r&c$	t|j|jtjz}|j	t
tj||j	t
tjtj|yrK)
rr;r6pathseprrrmrnrrrs)rGbad_itempaths  r$test_pathsep_errorzBasicTest.test_pathsep_errors\		t||||bjj0*dkk<@*dkk7<<3MNr&c	X		t|jtj}tj
j
tj}|jt|tj
j||j}t	j|tjtj|tj
j|||j d}t	j"|tj
j|d}dtj$ddz}tj
j|||}g}tj
D]}	|	j'drUtj
j)|	s5tj*|	tj
j||jtj
j)tj
j|	drt	j,|	D]}
|
dk(r	tj
j|	|
}tj
j)|rtj.||_tj
j1|stj2|tj
j||
s|j5|	tj
j||j|j6ddd	|jg}tj8j|}
t;j<d
}|rt;j>rJtj
jAtj
jCtj}tjDdk(rd}nd
}d|
||i}tjFjIdx}r||d<tKjL||tj
j|j|j|j6}|dddg}tO|\}}|jQ|jS|vy)Nrzos.pyzpython%d%d.zipr2z.ziprrrmrLIBDIRrzDYLD_LIBRARY_PATHLD_LIBRARY_PATH
PYTHONPATHASAN_OPTIONS)envz-Srzimport sys; print(sys.path))*rr;r>
platlibdirr6r7r8r9r:
addCleanuprWr=rrcopy2rHr0makedirsr?endswithrcopyfilercopyrjcopytreeappendrBr'rget_config_varrabspathrrCenvirongetrrr%rir)rGr1non_installed_dirr=libdirlandmark
stdlib_zipzip_landmark'additional_pythonpath_for_non_installedeachpathr<rkr 
pythonpathld_library_pathld_library_path_env	child_envasan_optionsrr"r#s                     r$%test_zippath_from_non_installed_posixz/BasicTest.test_zippath_from_non_installed_posixsS		t||^^
GG,,X-=-=-?@ 12/=
S^^V,/TXXa[I
F77<<0%(8(8!(<<
ww||$5$.$.035/	H  (77>>(+OO %6
CEXw ?@JJx0HD. h5Bww~~b)B/r*BGGLL,FGH8>>!	$ww||-t{{DHHE||	ZZ__35

$228<)";";"= ggoobggoocnn.MNO<<8#"5"3j#_
	::>>.99<9(4In%cy1T\\4;;AdD"?@$S++-45r&cl	tj|j}t||j^\}}||zdz}tj|t|d5}t|dD]+\}}d|}|j|jd|-	dddy#1swYyxYw)NrrrzCR LF found in line s
)rrrsr;rrrmrnr\	enumeraterr5)	rGvenv_dirscripts_dir_script_pathriline
error_messages	         r$.test_activate_shell_script_has_no_dos_newlinesz8BasicTest.test_activate_shell_script_has_no_dos_newlinesks	
<<-x"..+,z9H
+t
$	H$VQ/
H4"6qc :
  w!7G
H	H	H	Hs%;B**B3))rarbrcrjrprtrorrrrequireVenvCreaterrunittest
skipUnlessr
rr>rCrr?rrrrrrrr	r
r6r<rrrskipIfr"r%r)rJrTrer&r$rgrgcsR)+//J8?>58;:EE$FF*X(89F:F*||w


MC$4$4Ra$889
MC$4$4Ra$88/J

(1$/N*KX(898:8.
6
6X(896:6XD*DE+F+ 99(//X__RWW_&?@+A+$X13KL	8M	8OX__RWW_&?@K6AK6ZHr&rgceZdZ	dZdZdZdZdZejdZ
eeddZ
y	)

EnsurePipTestctjjtjj|j|j
|j}t|ddg\}}|jd}|j|d|jd}|j|jdy)Nrz1try:
 import pip
except ImportError:
 print("OK")latin-1r|OK)r6r7rWr8r;r=rBr%rrrrs    r$assert_pip_not_installedz&EnsurePipTest.assert_pip_not_installed~sRWW--dll;![[$((4B!DESjj#b!jj#d+r&ct|j|jtj|j|jyrKrr;rUrmrnr^rLs r$test_no_pip_by_defaultz$EnsurePipTest.test_no_pip_by_defaults2t||dkk4<<8%%'r&ct|j|jtj|jd|jy)NF)rr`rLs r$test_explicit_no_pipz"EnsurePipTest.test_explicit_no_pips7t||dkk4<<%H%%'r&cttjd5}|j|j	dddd|jtjjtjy#1swYFxYw)Nrr&)r\r6devnullrr]rir7rE)rGr^s  r$test_devnullzEnsurePipTest.test_devnulls^
"**d
#	,qQVVXs+	,	
rzz23	,	,s!BB
ct|jt5}d|d<d|d<tj5}||d<d}d}d}|fD]\}}t
jj||}	tj|	t
jj|	|}
t|
d	5}|j|ddd|j5|jtj|j|d
dddddddddt
jjt
jj|j|j |j"}t%|dd
ddddddg	\}
}|j'd}|j)|d|
j'd}
dj+t-j.}|j)|
dt1||tj2|jj'd}|j5||
t5}|j5d|d<t%|dd
dddddg\}
}dddddd|j'd}t7j8dd|t6j:}|j)|j=d|
j'd}
|j5d|
|s|j?yy#1swYxYw#1swY%xYw#1swY*xYw#1swY/xYw#1swYxYw#1swYxYw)NignorePYTHONWARNINGS1PIP_NO_INSTALLHOMEz[global]
no-install=1)rzpip.ini)z.pipzpip.confrT)rrz-Wzignore::DeprecationWarningzignore::ImportWarningz-Irrz	--versionr\r|zpip {}zensurepip._uninstallzl^(WARNING: )?The directory .* or its parent directory is not owned or is not writable by the current user.*$)flagszSuccessfully uninstalled pip) rr;rr9rr6r7rWrr\rnicer_errorrUrmrnr8r=rBr%rrformat	ensurepipversionlenfsencoderresub	MULTILINErstripr^)rGrenvvarshome_dir
bad_configwin_locationposix_locationrfnamedirpathfpathr^rr"r#expected_versionr;s                 r$do_test_with_pipzEnsurePipTest.do_test_with_pips,t||
 
"!	9g)1G$%),G$%,,.
9("*5
 2!5'5&7,NGU ggll8W=GHHW%GGLL%8EeS),Q
+,,	,%%'9))$++t||?S37*99#
9!	9FRWW--dll;T[[$((S.J,dUK!)*S
jj#b!jj##??9+<+<+>?3c"2346FG++dll+229=

gs#
!
"	3g!!#
3-5()'6140)23S	
3	3jj#ffNOQ.	
r*jj#

4c:$))+$u,,
99#
9
9!	9!	9l
3
3	3	3swMA6L?5L%	L?!.L2L?MM%*MM%%L/
*L?2L<7L??M		MMM"	M%%M.c#
K		dy#tj$rc}|jxsdjd}|jxsdjd}|j|d|d|Yd}~yd}~wwxYww)Nr&replace)errorsz

**Subprocess Output**
z

**Subprocess Error**
)rrrSrrfail)rGexcr"r#s    r$rnzEnsurePipTest.nicer_errors			,,	::$,,I,>C::$,,I,>CII%**-/)),/

	s+B
BBAA;6B;BBcpucH|jd|jdy)NFT)rrLs r$
test_with_pipzEnsurePipTest.test_with_pip
s 	
e$d#r&N)rarbrcr^rarcrfr
contextlibcontextmanagerrnr
rrrer&r$rZrZ{s^/
,(
(
4V,p$u$$r&rZ__main__rK)0rrpr6os.pathrrrtrrrr>rr9test.supportrrrrrrr	r
rrtest.support.os_helperr
rrrVrm
unittest.mockrrctypesImportErrorrWrrr@rHrUSkipTestr%TestCaser(rgrZramainrer&r$<module>rs=		


---
NM%(H''JJ#//!.
s~~-@B
G
(

G
HH&x  &PVHVHpR$HR$R$jzHMMOc
Fs%DD$#D$