python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_venv.cpython-311.pyc

em~FdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZddlZddlZddl m!Z!m"Z"	ddl#Z#n
#e$$rdZ#YnwxYwej%e
j&e
j'kpe
j(e
j)kdZ*eserej+deddZ,Gd	d
ej-Z.Gdde.Z/e*Gd
de.Z0e1dkrej2dSdS)z|
Test harness for the venv module.

Copyright (C) 2011-2012 Vinay Sajip.
Licensed to the PSF under a contributor agreement.
N)captured_stdoutcaptured_stderr
requires_zlib*skip_if_broken_multiprocessing_synchronizeverboserequires_subprocess
is_emscriptenis_wasirequires_venv_with_pip
TEST_HOME_DIRrequires_resourcecopy_python_src_ignore)can_symlinkEnvironmentVarGuardrmtree)patchMockz:cannot run venv.create from within a venv on this platformz)venv is not available on Emscripten/WASI.c.tj|tjtj|}|\}}|jrHt
r%|r#t
|ddtj|j|||||fS)N)stdoutstderrencodingutf-8backslashreplace)	
subprocessPopenPIPEcommunicate
returncoderprintdecodeCalledProcessError)cmdrpouterrs     B/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_venv.pycheck_outputr'-s			A}}HC|)	;s	;#**W&899:::+
L#sC))	)8Oc:eZdZdZdZdZdZdZdZddd	Z	d
S)BaseTestzBase class for venv tests.ic<tjtj|_tjdkrd|_d|_d|_	n,d|_ddtjddzf|_d	|_	tj}tj
|d
|_tjdkrGtj|r(tj|s	d|_dSd
|_dS)NntScriptsLibIncludebinlibpython%d.%dincludewin32TF)ospathrealpathtempfilemkdtempenv_dirnamebindirr2r5sysversion_info_base_executablesplitexeplatformlexistsexistscannot_link_exe)self
executables  r&setUpzBaseTest.setUp?sw''(8(:(:;;
7d??#DKDH$DLLDK}s/?/CCDDH$DL)
7==,,R0LG##
++
$GNN:..
$$(D   #(D   r(c.t|jdSN)rr=rIs r&tearDownzBaseTest.tearDownRst|r(ct5}t5}||i|dddn#1swxYwYdddn#1swxYwY||fSrM)rrgetvalue)rIfuncargskwargsoutputerrors      r&run_with_capturezBaseTest.run_with_captureUs


	&& ""
&ed%f%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&  %.."2"222s,A
	3A
7	A
7	A

AAc:tjj|jg|RSrM)r8r9joinr=)rIrSs  r&get_env_filezBaseTest.get_env_file[sw|DL040000r(rrct|j|d|5}|}dddn#1swxYwY|S)Nrr[)openrZread)rIrrSfresults     r&get_text_file_contentszBaseTest.get_text_file_contents^s
#$#T*C(
C
C
C	qVVXXF															
s<AAN)
__name__
__module____qualname____doc__maxDiffrKrOrWrZrbr(r&r*r*;sy$$G)))&3331116=r(r*c	LeZdZdZdZdZdZdZdZdZ	dZ
ed	Zed
Z
eejeddZejd
krdZn,dddddejddzfddejddzdffZdZdZdZdZdZdZejeddZedZejeddZejej d kd!d"Z!ed#Z"ed$Z#ej$ej d kd%d&Z%ejejd'kd(d)Z&d*Z'ej$ej d kd%ed+Z(dS),	BasicTestzTest venv module functionality.c~|j|}|tj|dSrM)rZ
assertTruer8r9isdir)rIrSfns   r&rmzBasicTest.isdirfs7
T

%

b))*****r(ct|j|tj|j|dS)zQ
        Test the create function with default arguments and a str path.
        N)rr=rWvenvcreate_check_output_of_default_createrNs r&test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathjsF	t|dk4<888,,.....r(ct|j|tjtj|j|dS)zZ
        Test the create function with default arguments and a pathlib.Path path.
        N)rr=rWrprqpathlibPathrrrNs r&test_defaults_with_pathlib_pathz)BasicTest.test_defaults_with_pathlib_pathrsP	t|dk7<+E+EFFF,,.....r(c8||j||j|j|j|d}tjddkotjdkotj
dk}|r3|tj
|n2|tj||d}tj}tj|}|d|z||dtjtjz|tjd	krd
nd}dtjd
|d|j}|||||j|j}tj|sP||j}	t1d|	zt1dtj|	z|tj|d|zdS)Nlib64Pposixdarwin
pyvenv.cfgz	home = %szexecutable = %sr,z	 --copiesz
command = z -m venvz --without-pip Contents of %r:    %rFile %r should exist.)rmr?r5r2rZstructcalcsizer8r>r@rErlr9islinkassertFalserGrbrBdirnameassertInr:rJr=rDrlistdir)
rIr#
conditionsdatarJr9copiesr"rnbds
          r&rrz)BasicTest._check_output_of_default_createzs5

4;

4<   
DHg&&s++q01rw'7I1|x/		0OOBGNN1--....RW^^A..///**<88)
wz**

kD($///

'g&&s~6678<	>	>	>w}}+X3>XX6XX$,XX

c4   


t{DH
5
5w~~b!!	-""4;//B#b()))(RZ^^+,,,r**,Cb,HIIIIIr(cgd}|D]\}}t|j|stj}ntjd
i||dvrdndi}t	|_t	|_||j|j|	d}|sdD]}|
|d|tjdkr|d	kr|
|d|dS)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,rrh)rr=rp
EnvBuilderrupgrade_dependencies
_setup_piprWrqrbassertNotRegexr8r>assertRegex)rIattrsattroptbrs      r&test_config_file_command_keyz&BasicTest.test_config_file_command_keysS	
	
	
	?	?ID#4<   
SO%%OSSd.F&F&FUUDQSS%)VVA"66AL!!!(DL999..|<<D
?6FFC''.Ds.D.DEEEEF$4#3#3  '='='=>>>>%	?	?r(ctj|jd}t	|jtj}||j|j|	|j}|
d}||jd|z|
d|t	|jtjd}||j|j|	|j}|
d}||jd|d|t	|jtjd	}tjtj}||j|j|	|j}|
d}||jd|z|d
|z|dS)Nr~z(%s) z	prompt = z	My prompt)rz(My prompt) zprompt = 'My prompt'
.zprompt = '%s'
)r8r9rCr=rrprrWrqensure_directoriesrbassertEqualrassertNotInrbasenamegetcwd)rIenv_namebuildercontextrcwds      r&test_promptzBasicTest.test_prompts7==..q1t|/##gndl;;;,,T\::**<888);<<<d+++t|/555gndl;;;,,T\::**<88888

.555t|/---gry{{++gndl;;;,,T\::**<883777

'#-t44444r(ctj}tjdkrdnd}tjtjd}tj	5}tj
tj|||tjdkr<tj
tjfd}|
|}td|5||dddn#1swxYwYddddS#1swxYwYdS)Nr7r-r1rc
tj|d|d<|ddddddgdS)Nr-mpipinstallr
setuptools)r8r9normcaser)r"rT
expect_exerIs  r&pip_cmd_checkerz<BasicTest.test_upgrade_dependencies.<locals>.pip_cmd_checkers_))#a&11A  "!#$r(zvenv.subprocess.check_output)rprr@rEr8r9rCrJr;TemporaryDirectoryrrYr:rrr)rIrbin_path
python_exefake_env_dirrfake_contextrs`      @r&test_upgrade_dependenciesz#BasicTest.test_upgrade_dependenciess/## # 7 799UW]]3>2215


(
*
*	;l))\8Z@@J|w&&W--bg.>.>z.J.JKK












#55lCCL5GG
;
;,,\:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;/	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;s7,B6E"E8EE	EE	EE #E ct|j|tj|jt
j|j|j|j	}|ddg}d|jfd|jfdtjfdtjffD]Z\}}d|z|d<t|\}}||||[dS)	z>
        Test that the prefix values are as expected.
        -cNprefixexec_prefixbase_prefixbase_exec_prefixzimport sys; print(sys.%s)r4)rr=rWrprqr8r9rYr?rDr@rrr'rstripencode)rIenvpyr"rexpectedr$r%s       r&
test_prefixeszBasicTest.test_prefixess	t|dk4<888T\4;AAdD!
t|$
DL)
CO,
!56	!8	E	EFH
169CF#C((HCSYY[[(//*;*;VDDDD	E	Er(ct|j|tj|jdt
j|j|j|j	}|ddg}dddttjfdtj
fd	tjffD]\}}||5d
|z|d<t!|\}}||||dddn#1swxYwYdS)R
        Test that the sysconfig functions work in a virtual environment.
        FrrNzget_preferred_scheme("prefix")rpzget_default_scheme()rpis_python_build()get_makefile_filename()get_config_h_filename()%import sysconfig; print(sysconfig.%s)r4rr=rWrprqr8r9rYr?rDstr	sysconfigis_python_buildget_makefile_filenameget_config_h_filenamesubTestr'rrrrIrr"callrr$r%s       r&test_sysconfigzBasicTest.test_sysconfigs
	t|dk4<%HHHT\4;AAdD!
7,
 #i&?&A&A"B"BC
&	(G(I(IJ
&	(G(I(IJL	F	FND(d##
F
F@4GA',,S  hoo.?.?EEE
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F	F	FAD::D>	D>	zNeeds symlinksct|j|tj|jdt
j|j|j|j	}|ddg}dddttjfdtj
fd	tjffD]\}}||5d
|z|d<t!|\}}||||dddn#1swxYwYdS)rTrrNrrrrrrr4rrs       r&test_sysconfig_symlinksz!BasicTest.test_sysconfig_symlinkss	t|dk4<$GGGT\4;AAdD!
7,
 #i&?&A&A"B"BC
&	(G(I(IJ
&	(G(I(IJL	F	FND(d##
F
F@4GA',,S  hoo.?.?EEE
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F	F	Frr7))r-)r0r.)r/
site-packages)r1)r5)r2r2r3Nr4rc*|D]}tjj|jg|R}tj|tj||}t|d5}|ddddn#1swxYwYdS)zn
        Create some files in the environment which are unrelated
        to the virtual environment.
        wbStill here?N)r8r9rYr=mkdirr^write)rIpathsfilenamesubdirsdrnr`s       r&create_contentszBasicTest.create_contents?s
	(	(GT\4G444AHQKKKa**Bb$
(1'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(		(	(s%BB	B	c||jdtj|j|jD]}tjj|jg|dzR}|t
j	|t|d5}||ddddn#1swxYwYtj
d}||j|jD]S}tjj|jg|dzR}|t
j	|TdS)zE
        Test creating environment in an existing directory.
        foo)rrbrNTr)rENV_SUBDIRSrprqr=r8r9rYrlrGr^rr_rr)rIrrnr`rs     r&test_overwrite_existingz!BasicTest.test_overwrite_existingKs	
T-u555DL!!!'	;	;GdlBg.@BBBBOOBGNN2..///b$
;1  >:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;/---t|$$$'	1	1GdlBg.@BBBBRW^^B//0000	1	1s)CC	C	cvtj|D]}tj||}tj|stj|rtj|utj|rt|dSrM)	r8rr9rYrisfileremovermr)rIr9rns   r&clear_directoryzBasicTest.clear_directory]s*T""		BdB''Bw~~b!!
RW^^B%7%7
	"



r""
r


		r(ct|jddD]}tjj|jg|R}t|d5}|ddddn#1swxYwY|ttftj|j||jdS)Nrr()
rr8r9rYr=r^rassertRaises
ValueErrorOSErrorrprqr)rIrrnr`s    r&test_unoverwritable_failsz#BasicTest.test_unoverwritable_failses%bqb)	/	/Edl3U333Bb$
1














z73T[$,OOO  ....	/	/sA  A$	'A$	cdD]@}tj|}||j|j||j||j|j|j|	|j|j
}tj
|sP|	|j}td|ztdtj|z|tj
|d|zBdS)zC
        Test upgrading an existing environment directory.
        FT)rrrrN)rprrWrqr=rmr?r5r2rZrDr8r9rGrrrl)rIrrrnrs     r&test_upgradezBasicTest.test_upgradens$%	N	NGog666G!!'.$,???JJt{###JJt|$$$DJ!!""4;99B7>>"%%
1&&t{33'",---hB/000OOBGNN2..0G"0LMMMM	N	Nr(cdD]c\}}tjd|}||j|d}|d|z|ddS)z:
        Test isolation from system site-packages
        ))Ttrue)FfalseT)rrr~z"include-system-site-packages = %s
N)rprrqr=rbr)rIsspsrrs     r&test_isolationzBasicTest.test_isolations}9	K	KFCoDsKKKGNN4<(((..|<<DMM?!CTJJJJ		K	Kr(cdD]}tjd|}||j||j|j}|rl|jr3|tj
||tj
|dS)z3
        Test symlinking works as expected
        rTrrN)
rprrqr=rZr?rDrHrr8r9rrl)rIuslrrns    r&test_symlinkingzBasicTest.test_symlinkings
!
	8
	8CoD3???GNN4<(((""4;99B
8'8$$RW^^B%7%78888OOBGNN2$6$6777
	8
	8r(ct|j|tj|jt
jt
j|j|j	|j
}t|ddg\}}||
|dS)D
        Test that the sys.executable value is as expected.
        r!import sys; print(sys.executable)N)rr=rWrprqr8r9rYr:r?rDr'rrrrIrr$r%s    r&test_executablezBasicTest.test_executables
	t|dk4<888RW--dl;;![$(44/!122Sellnn55555r(ct|jtjdd}||jt
jt
j|j|j	|j
}t|ddg\}}||
|dS)rTrrr
Nrr=rprrqr8r9rYr:r?rDr'rrrrIrrr$r%s     r&test_executable_symlinksz"BasicTest.test_executable_symlinkss
	t|/t<<<t|$$$RW--dl;;![$(44/!122Sellnn55555r(r,zonly relevant on Windowsc4t|jtjtj|jd}t
jd}||tj||j	d}tj||j	|j
}t|d|j
ddgd	\}}||
d
dS)z0
        Test handling of Unicode paths
        uϼўТλФЙTrzactivate.bat&rzprint(0)oemr[0N)rr=r8r9rYr:rprrqr?rDr'rr)rIr=ractivaterr$r%s       r&test_unicode_in_batch_filez$BasicTest.test_unicode_in_batch_files
	t|',,rw//==~NN/---w7<<nEEWdk48<<
sDHdJ7


S	
c*****r(ctt|j|tj|jtjtj	|j|j
|j}t|ddg\}}|
|ddS)zA
        Test that the multiprocessing is able to spawn.
        rzrfrom multiprocessing import Pool; pool = Pool(1); print(pool.apply_async("Python".lower).get(3)); pool.terminate()pythonN)rrr=rWrprqr8r9rYr:r?rDr'rrrrs    r&test_multiprocessingzBasicTest.test_multiprocessings	3444t|dk4<888RW--dl;;![$(44
! !!S
	
hoo&7&788888r(ctt|j|tj|jtjtj	|j|j
|j}tjtd}tj||gdS)zG
        Test that the multiprocessing is able to spawn itself
        z_test_venv_multiprocessing.pyN)rrr=rWrprqr8r9rYr:r?rDrr
check_call)rIrscripts   r&test_multiprocessing_recursionz(BasicTest.test_multiprocessing_recursions
	3444t|dk4<888RW--dl;;![$(44m-LMMufo.....r(znot relevant on Windowsctjd}||dt|jtjd}||jtj	
|j|jd}tj	
|jd}t|d5}|
d|d	dddn#1swxYwYt||g\}}||d
||d
dS)Nbashzbash required for this testTrrztest_strict.shwzset -euo pipefail
source z
deactivate
r)shutilwhichskipTestrr=rprrqr8r9rYr?r^rr'rr)rIr"rrtest_scriptr`r$r%s        r&%test_deactivate_with_strict_bash_optsz/BasicTest.test_deactivate_with_strict_bash_optss{|F##<MM7888t|/---t|$$$7<<dk:FFgll4<1ABB
+s
#
#	$q
GG#&###
$
$
$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$ { 344Sbiikk***biikk*****sC55C9<C9r}zonly relevant on macOSct|jtj}||jt
jt
j|j|j	|j
}t|ddg\}}||
ddS)Nrz5import os; print("__PYVENV_LAUNCHER__" in os.environ)Falserrs     r&test_macos_envzBasicTest.test_macos_envst|/##t|$$$RW--dl;;![$(44C!EFFSgnn&6&677777r(ct|j|jtjz}|t
tj||t
tjtj	|dS)zn
        Test that venv creation fails when the target directory contains
        the path separator.
        N)
rr=r8pathseprrrprqrurv)rIbad_itempaths  r&test_pathsep_errorzBasicTest.test_pathsep_errorsf
	t||bj0*dk<@@@*dk7<3M3MNNNNNr(c	t|jtj}tjtj}|	t|tj
||j}t	j|tjtj|tj
|||jd}t	j|tj
|d}dtjddz}tj
|||}g}tjD]}	|	drStj|	r3tj|	tj
||ktjtj
|	drt	j|	}
t/|	|
}|
D]}||vr|dkrtj
|	|}
tj|
rtj|
|ctj|
r:tj|
tj
||t.||	tj
||j|jd	d
d|jg}tj
|}t=jd}|rt=j rFtj!tj"tj}tj#d
krd}nd}tIj%|d|||itj
|j|j|j}|dddg}tM|\}}|'|(|vdS)zr
        Test that when create venv from non-installed python, the zip path
        value is as expected.
        rzos.pyzpython%d%d.zipNr4z.zipr)ignorerrprLIBDIRr}DYLD_LIBRARY_PATHLD_LIBRARY_PATH
PYTHONPATH)envz-Srzimport sys; print(sys.path)))rr=r@
platlibdirr8r9r:r;r<
addCleanuprYr?rr$copy2rJr2makedirsrAendswithrcopyfilerrcopyrmcopytreeappendrDr-rget_config_varrabspathrrErrr'rlr)rIr7non_installed_dirr?libdirlandmark
stdlib_zipzip_landmark'additional_pythonpath_for_non_installedeachpathnames
ignored_namesr>rnr"
pythonpathld_library_pathld_library_path_envrr$r%s                     r&%test_zippath_from_non_installed_posixz/BasicTest.test_zippath_from_non_installed_posixs	t|^
G,,X-=-?-?@@ 1222/==
S^V,,,/TXa[II
F7<<00%(8!(<<
w||$5$.$.0035/		H  ((
7>>(++EO %6
CCEEEXw ? ?@@

8,, 6x G G
!
G
GD},, .. h55Bw~~b))GB////r**GBGLL,F,F/EGGGG
G8>>w||-t{DHEE|	Z__355

$28<<	O)";"="=	O goobgoocn.M.MNNO<8##"5"3c#/#6#I	J	J	J	JT\4;AAdD"?@$$S++--455555r())rcrdrerfrmrsrwrrrrrrequireVenvCreaterrunittest
skipUnlessrrr@rErrArrrrrrr
rrr8r>rrr skipIfr(r+r/rNrhr(r&rjrjcsg))+++//////JJJ8???>5558;;;<EEE$FFF*X(899FF:9F*|w


MC$4RaR$889
MC$4RaR$88/J

(
(
(111$///NNN*KKKX(89988:98.
6
6
6X(89966:96XD*DEE++FE+ 999(///X_RW_&?@@++A@+$X13KLL	8	8ML	8OOOX_RW_&?@@L6L6A@L6L6L6r(rjceZdZdZdZdZdZdZdZe	j
dZee
dd	Zd
S)
EnsurePipTestz%Test venv module installation of pip.ctjtj|j|j|j}t|ddg\}}|d}|	|d|d}|	|
ddS)Nrz1try:
 import pip
except ImportError:
 print("OK")latin-1rOK)r8r9rYr:r=r?rDr'r rrrs    r&assert_pip_not_installedz&EnsurePipTest.assert_pip_not_installedpsRW--dl;;![$(44B!DEESjj##b!!!jj##d+++++r(ct|j|tj|j|dSrMrr=rWrprqrXrNs r&test_no_pip_by_defaultz$EnsurePipTest.test_no_pip_by_default}sDt|dk4<888%%'''''r(ct|j|tj|jd|dS)NF)rrZrNs r&test_explicit_no_pipz"EnsurePipTest.test_explicit_no_pipsIt|dk4<%HHH%%'''''r(c2ttjd5}||ddddn#1swxYwY|tjtjdS)Nrr()r^r8devnullrr_rlr9rG)rIr`s  r&test_devnullzEnsurePipTest.test_devnulls
"*d
#
#	,qQVVXXs+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	
rz2233333s)AAAct|jt5}d|d<d|d<tj5}||d<d}d}d}|fD]\}}t
j||}	tj|	t
j|	|}
t|
d	5}|
|dddn#1swxYwY|5|tj|j|d
dddn#1swxYwYdddn#1swxYwYdddn#1swxYwYt
jt
j|j|j|j}t%|dd
ddddddg	\}
}|d}||d|
d}
dt-j}||
dt1||tj|jd}|||
t5}|5d|d<t%|dd
dddddg\}
}dddn#1swxYwYdddn#1swxYwY|d}t7jdd|t6j}||d|
d}
|d|
|d|
|s|dSdS)Nr1PYTHONWARNINGS1PIP_NO_INSTALLHOMEz[global]
no-install=1)rzpip.ini)z.pipzpip.confr#T)rrz-Wzignore::DeprecationWarningzignore::ImportWarningz-Irrz	--versionrVrzpip {}zensurepip._uninstallzl^(WARNING: )?The directory .* or its parent directory is not owned or is not writable by the current user.*$)flagszSuccessfully uninstalled pipz#Successfully uninstalled setuptools) rr=rr;rr8r9rYrr^rnicer_errorrWrprqr:r?rDr'r rformat	ensurepipversionlenfsencoderresub	MULTILINErstriprX)rIrenvvarshome_dir
bad_configwin_locationposix_locationrfnamedirpathfpathr`rr$r%expected_versionr=s                 r&do_test_with_pipzEnsurePipTest.do_test_with_pips7t|
 
"
"!	9g)1G$%),G$%,..
9("*5
 2!5'5&7,,NGU gll8W==GHW%%%GLL%88EeS)),Q
+++,,,,,,,,,,,,,,,
%%''99))$+t|?S37*999999999999999999#
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9!	9FRW--dl;;T[$(SS.J,dUK!)**S
jj##b!!!jj###??9+<+>+>??3c"233346FGGG+dl++229==

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

4c:::

;SAAA$	,))+++++	,	,sEA8E9C	EC
E"C
#E;)D0$E0D44E7D48E;EE	EE	EE"%E"2L
 K3'L
3K7	7L
:K7	;L

LLc#K	dVdS#tj$rb}|jpdd}|jpdd}||d|d|Yd}~dSd}~wwxYw)z
        Capture output from a failed subprocess for easier debugging.

        The output this handler produces can be a little hard to read,
        but at least it has all the details.
        Nr(replace)errorsz

**Subprocess Output**
z

**Subprocess Error**
)rr!rUr rfail)rIexcr$r%s    r&rgzEnsurePipTest.nicer_errors		EEEEE,			:$,,I,>>C:$,,I,>>CII//*-//),//








	s
A;AA66A;cpucZ|d|ddS)NFT)rzrNs r&
test_with_pipzEnsurePipTest.test_with_pips2	
e$$$d#####r(N)rcrdrerfrXr[r]r`rz
contextlibcontextmanagerrgrr
rrhr(r&rTrTms//
,
,
,(((
(((
444W,W,W,r$u$$$$$r(rT__main__rM)3rfrrir8os.pathrurmr$rrr@rr;test.supportrrrrrrr	r
rrr
rtest.support.os_helperrrrrPrp
unittest.mockrrctypesImportErrorrQrrrBrJrOSkipTestr'TestCaser*rjrTrcmainrhr(r&<module>rs								











EEEEEEEEEEEEEEEEEEEEEEEEEEEE
NMMMMMMMMM%%%%%%%%MMMM
FFF
(H'J#/!.
s~-@BB
IGI
(
G
H
HH&&&&&x &&&PH6H6H6H6H6H6H6H6TS$S$S$S$S$HS$S$S$lzHMOOOOOs*A//A98A9