python (3.12.0)

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

Αe\PdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZmZmZmZmZmZmZmZmZmZddlmZmZmZddlZddlZddlmZm Z 	ddl!Z!ejFe
jHe
jJk(xse
jLe
jNk7dZ(eserejRdeddZ*Gd	d
ejVZ,Gdde,Z-e(Gd
de,Z.e/dk(rej`yy#e"$rdZ!YwxYw)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*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)	)8Oc8eZdZdZdZdZdZdZdZddd	Z	y
)BaseTestzBase class for venv tests.icFtjjtj|_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____doc__maxDiffrIrMrUrXr`r&r$r(r(;s($G)&316=r&r(c	.eZdZdZdZdZdZdZdZdZ	dZ
ed	Zed
Z
eejeddZej&d
k(rdZn,dddddej*ddzfddej*ddzdffZdZdZdZdZdZdZejeddZedZejeddZejej@d k(d!d"Z!ed#Z"ed$Z#ejHej@d k(d%d&Z%ejej&d'k(d(d)Z&d*Z'ejHej@d k(d%ed+Z(d,Z)y)-	BasicTestzTest venv module functionality.c~|j|}|jtjj	|yrK)rX
assertTruer6r7isdir)rGrQfns   r$rkzBasicTest.isdirfs-
T


%

b)*r&ct|j|jtj|j|jy)zQ
        Test the create function with default arguments and a str path.
        N)rr;rUvenvcreate_check_output_of_default_createrLs r$test_defaults_with_str_pathz%BasicTest.test_defaults_with_str_pathjs4	t||dkk4<<8,,.r&ct|j|jtjtj|j|jy)zZ
        Test the create function with default arguments and a pathlib.Path path.
        N)rr;rUrnropathlibPathrprLs r$test_defaults_with_pathlib_pathz)BasicTest.test_defaults_with_pathlib_pathrs=	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.)rkr=r3r0rXstructcalcsizer6r<r>rCrjr7islinkassertFalserEr`r@dirnameassertInr8rHr;rBrlistdir)
rGr!
conditionsdatarHr7copiesr rlbds
          r$rpz)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*rrf)rr;rn
EnvBuilderrupgrade_dependencies
_setup_piprUror`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;rrnrrUroensure_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)rnrr>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)	z>
        Test that the prefix values are as expected.
        -cNprefixexec_prefixbase_prefixbase_exec_prefixzimport sys; print(sys.%s)r2)rr;rUrnror6r7rWr=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&ct|j|jtj|jdt
jj|j|j|j}|ddg}dddttjfdtjfd	tjffD]d\}}|j|5d
|z|d<t!|\}}|j#|j%|j'|dddfy#1swYqxYw)R
        Test that the sysconfig functions work in a virtual environment.
        FrrNzget_preferred_scheme("prefix")rnzget_default_scheme()rnis_python_build()get_makefile_filename()get_config_h_filename()%import sysconfig; print(sysconfig.%s)r2rr;rUrnror6r7rWr=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 symlinksct|j|jtj|jdt
jj|j|j|j}|ddg}dddttjfdtjfd	tjffD]d\}}|j|5d
|z|d<t!|\}}|j#|j%|j'|dddfy#1swYqxYw)rTrrNrrrrrrr2rrs       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)r0r0r1Nr2rc4|D]}tjj|jg|}tj|tjj||}t|d5}|j
ddddy#1swYxYw)zn
        Create some files in the environment which are unrelated
        to the virtual environment.
        wbStill here?N)r6r7rWr;mkdirr\write)rGpathsfilenamesubdirsdrlr^s       r$create_contentszBasicTest.create_contents>s~
	(GT\\4G4AHHQKa*Bb$
(1'
(
(		(
(
(s1BB	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)zE
        Test creating environment in an existing directory.
        foo)rrbrNTr)rENV_SUBDIRSrnror;r6r7rWrjrEr\rr]rr)rGrrlr^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2!E;;F	cvtj|D]}tjj||}tjj	|stjj|rtj|wtjj|st|yrK)	r6rr7rWrisfileremoverkr)rGr7rls   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
ValueErrorOSErrorrnror)rGrrlr^s    r$test_unoverwritable_failsz#BasicTest.test_unoverwritable_failsds%%bq)	/Edll3U3Bb$
1
z73T[[$,,O  .	/

s	B66B?	cdD]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)zC
        Test upgrading an existing environment directory.
        FT)rr~rrN)rnrrUror;rkr=r3r0rXrBr6r7rErrrj)rGrrrlrs     r$test_upgradezBasicTest.test_upgradems%	NGoog6G!!'..$,,?JJt{{#JJt||$DJJ!""4;;9B77>>"%&&t{{3'",-hB/0OOBGGNN2.0G"0LM	Nr&cdD]]\}}tjd|}|j|j|j	d}|jd|z|_y)z:
        Test isolation from system site-packages
        ))Ttrue)FfalseT)rrr|z"include-system-site-packages = %s
N)rnrror;r`r)rGsspsrrs     r$test_isolationzBasicTest.test_isolations]9	KFCooDsKGNN4<<(..|<DMM?!CTJ		Kr&cdD]}tjd|}|j|j|j	|j
|j}|s^|jr/|jtjj||jtjj|y)z3
        Test symlinking works as expected
        rTrrN)
rnrror;rXr=rBrFrr6r7rrj)rGuslrrls    r$test_symlinkingzBasicTest.test_symlinkings
!
	8CooD3?GNN4<<(""4;;9B''$$RWW^^B%78OOBGGNN2$67
	8r&ct|j|jtj|jt
jjt
jj|j|j|j}t|ddg\}}|j|j|jy)D
        Test that the sys.executable value is as expected.
        r!import sys; print(sys.executable)N)rr;rUrnror6r7rWr8r=rBr%rrrrGrr"r#s    r$test_executablezBasicTest.test_executables
	t||dkk4<<8RWW--dll;![[$((4/!12Selln5r&ct|jtjdd}|j	|jt
jjt
jj|j|j|j}t|ddg\}}|j|j|jy)r	Trrr
Nrr;rnrror6r7rWr8r=rBr%rrrrGrrr"r#s     r$test_executable_symlinksz"BasicTest.test_executable_symlinkss
	t||//t<t||$RWW--dll;![[$((4/!12Selln5r&r*zonly relevant on WindowscHt|jtjj	tjj|jd}t
jd}|j|tjj	||jd}tjj	||j|j}t|d|jddgd	\}}|j|jd
y)z0
        Test handling of Unicode paths
        uϼўТλФЙTrzactivate.bat&rzprint(0)oemrY0N)rr;r6r7rWr8rnrror=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&ctt|j|jtj
|jtjjtjj|j|j|j}t|ddg\}}|j|jdjy)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;rUrnror6r7rWr8r=rBr%rrrrs    r$test_multiprocessingzBasicTest.test_multiprocessings	34t||dkk4<<8RWW--dll;![[$((4
! !S
	
hoo&78r&ctt|j|jtj
|jtjjtjj|j|j|j}tjjtd}tj||gy)zG
        Test that the multiprocessing is able to spawn itself
        z_test_venv_multiprocessing.pyN)rrr;rUrnror6r7rWr8r=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;rnrror6r7rWr=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		Er{zonly 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)Falserrs     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|y)zn
        Test that venv creation fails when the target directory contains
        the path separator.
        N)
rr;r6pathseprrrnrorsrt)rGbad_itempaths  r$test_pathsep_errorzBasicTest.test_pathsep_errorsW
	t||||bjj0*dkk<@*dkk7<<3MNr&c	V	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|j6dd	d
|jg}tj8j|}
t;j<d}|rt;j>rJtj
jAtj
jCtj}tjDdk(rd
}nd}d|
||i}tjFjIdx}r||d<tKjL||tj
j|j|j|j6}|dddg}tO|\}}|jQ|jS|vy)zr
        Test that when create venv from non-installed python, the zip path
        value is as expected.
        rzos.pyzpython%d%d.zipNr2z.ziprrrnrLIBDIRr{DYLD_LIBRARY_PATHLD_LIBRARY_PATH
PYTHONPATHASAN_OPTIONS)envz-Srzimport sys; print(sys.path))*rr;r>
platlibdirr6r7r8r9r:
addCleanuprWr=rr!copy2rHr0makedirsr?endswithrcopyfilercopyrkcopytreeappendrBr*rget_config_varrabspathrrCenvirongetrrr%rjr)rGr4non_installed_dirr=libdirlandmark
stdlib_zipzip_landmark'additional_pythonpath_for_non_installedeachpathr<rlr 
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_posixsN	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&cjtj|j}t||j^\}}||zdz}tj|t|d5}t|dD]+\}}d|}|j|jd|-	dddy#1swYyxYw)z
        Test that the `activate` shell script contains no CR LF.
        This is relevant for Cygwin, as the Windows build might have
        converted line endings accidentally.
        rrrzCR LF found in line s
N)rsrtr;rrrnror\	enumeraterr8)	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))B2)*rarbrcrdrkrqrurprrrrequireVenvCreaterrunittest
skipUnlessr
rr>rCrr?rrrrrrrrrr6r<rrrskipIfr%r(r,rMrWrfr&r$rhrhcsR)+//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&rhceZdZdZdZdZdZdZdZe	jdZee
dd	Zy
)
EnsurePipTestz%Test venv module installation of pip.ctjjtjj|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;rUrnrorarLs r$test_no_pip_by_defaultz$EnsurePipTest.test_no_pip_by_defaults2t||dkk4<<8%%'r&ct|j|jtj|jd|jy)NF)rrcrLs r$test_explicit_no_pipz"EnsurePipTest.test_explicit_no_pips7t||dkk4<<%H%%'r&cttjd5}|j|j	dddd|jtjjtjy#1swYFxYw)Nrr&)r\r6devnullrr]rjr7rE)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.confr T)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_errorrUrnror8r=rBr%rrformat	ensurepipversionlenfsencoderresub	MULTILINErstripra)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)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**
)rrrSrrfail)rGexcr"r#s    r$rqzEnsurePipTest.nicer_errors		,,	::$,,I,>C::$,,I,>CII%**-/)),/

	s+B	BA?AA:5B:A??BcpucH|jd|jdy)NFT)rrLs r$
test_with_pipzEnsurePipTest.test_with_pip
s 	
e$d#r&N)rarbrcrdrardrfrir
contextlibcontextmanagerrqr
rrrfr&r$r]r]{s^/
,(
(
4V,p$u$$r&r]__main__rK)1rdrrsr6os.pathrsrwr!rrr>rr9test.supportrrrrrrr	r
rrtest.support.os_helperr
rrrYrn
unittest.mockrrctypesImportErrorrZrrr@rHrXSkipTestr%TestCaser(rhr]ramainrfr&r$<module>rs=		


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

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