python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_tempfile.cpython-311.opt-1.pyc

eddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlZddlmZddlmZddlmZddlmZejejkZeedZejdrd	Znd
ZGddejZGd
dejZGddeZGddeZ GddeZ!GddeZ"GddeZ#ej$dZ%dZ&GddZ'Gdde'eZ(Gdd eZ)Gd!d"eZ*Gd#d$eZ+Gd%d&e'eZ,Gd'd(eZ-Gd)d*eZ.Gd+d,eZ/ej0ej1urGd-d.eZ2Gd/d0Z3Gd1d2eZ4e5d3krej6dSdS)4N)mock)support)	os_helper)
script_helper)warnings_helperspawnlopenbsd0dc,eZdZdZdZdZdZdZdS)TestLowLevelInternalsc|ttjd|ttjd|ttjddSN)assertIsstrtempfile_infer_return_typebytesselfs F/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_tempfile.pytest_infer_return_type_singlesz4TestLowLevelInternals.test_infer_return_type_singles&se

c86r::;;;

eX8==>>>

c86t<<=====rc|ttjdd|ttjdd|t5tjdddddn#1swxYwY|t5tjddddddS#1swxYwYdSrrrrrrassertRaises	TypeErrorrs r test_infer_return_type_multiplesz6TestLowLevelInternals.test_infer_return_type_multiples+sK

c86r2>>???

eX8cBBCCC


y
)
)	1	1'C000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


y
)
)	1	1'R000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s$7BB B>C!!C%(C%c|ttjdd|ttjdd|ttjdd|ttjdd|ttjdd|t5tjddddddn#1swxYwY|t5tjdddddddS#1swxYwYdSrrrs r)test_infer_return_type_multiples_and_nonez?TestLowLevelInternals.test_infer_return_type_multiples_and_none3s

c86tR@@AAA

c86r4@@AAA

c86tTBBCCC

eX8dCCDDD

eX8sCCDDD


y
)
)	7	7'D#666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7


y
)
)	7	7'T2666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7s$D$$D(+D(	E--E14E1c|ttjt	jddS)N/)rrrrpathlibPathrs rtest_infer_return_type_pathlibz4TestLowLevelInternals.test_infer_return_type_pathlib>s1

c86w|C7H7HIIJJJJJrc	Gdd}|ttj|d|ttj|d|ttjd|d|ttjd|d|ttjd|d|ttjd|d|t5tjd|ddddn#1swxYwY|t5tjd|dddddS#1swxYwYdS)NceZdZdZdZdS)CTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.Pathc||_dSNpath)rr-s  r__init__zLTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.Path.__init__Cs
 			rc|jSr+r,rs r
__fspath__zNTestLowLevelInternals.test_infer_return_type_pathlike.<locals>.Path.__fspath__Fs
y rN)__name__
__module____qualname__r.r0rrr%r)Bs2
!
!
!
!
!
!
!
!rr%r#/rrr)rr%s  rtest_infer_return_type_pathlikez5TestLowLevelInternals.test_infer_return_type_pathlikeAs5	!	!	!	!	!	!	!	!	


c86ttCyyAABBB

eX8dDDEEE

c86r4488DDEEE

eX8dd3iiHHIII

eX8ttCyyIIJJJ

c86tTT"XXFFGGG


y
)
)	7	7'DDII666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7


y
)
)	7	7'TT"XX666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7s$0FF"FG,,G03G0N)r1r2r3rrr!r&r6r4rrr
r
%sb>>>
111	7	7	7KKK77777rr
cZeZdZejdZejdZdZdZdS)BaseTestCasez^[a-z0-9_-]{8}$s^[a-z0-9_-]{8}$c|tjtjdt
dtdS)Nignoremktemp)categorymessagemodule)enterContextrcheck_warningswarningsfilterwarningsRuntimeWarningr1rs rsetUpzBaseTestCase.setUp\sR/8::;;;>(0	C	C	C	C	C	CrcFtj|\}}|dt|}|t|t|z
d}|`|t|t|tust|tjrtntd|F|t|t|turtntd|F|t|t|turtntd|||fdkr)|t|td|
tj|tj|d|d||
||d|d||
||d|d||t|t|t|z
}t|tr|jn|j
}	||	|d|d	|	jdS)
Nzunexpected return typeNNNzdefault return type must be strzfile z not in directory z does not begin with z does not end with zrandom characters z do not match )osr-splitlenrtyper
isinstancePathLikerassertEqualabspath	str_checkb_check
assertTruematchpattern)
rnamedirpresufndirnbasenprensufchecks
          r	nameCheckzBaseTestCase.nameCheckas}

d++
uis3xxi c%jjS)**+?MMT

99##z#r{'C'C#(


?MM$t**T#YY#-=-=cc52
4
4
4?MM$t**T#YY#-=-=cc52
4
4
4c?000MM$t**c+LMMM	
..0D0D0D:>$$D	F	F	Fss=BUUCCH	J	J	Jss;@55##F	H	H	Hc#hhs5zz#c((223",UC"8"8JdlE*** 55%--1	2	2	2	2	2rN)	r1r2r3recompilerOrPrDr]r4rrr8r8WsY
-..Ibj,--GCCC
"2"2"2"2"2rr8ceZdZdZdS)TestExportsctj}ddddddddddddddd}g}|D]'}|ddkr||vr||(|t	|dkd|zdS)N)NamedTemporaryFile
TemporaryFilemkstempmkdtempr;TMP_MAX
gettempprefixgettempprefixb
gettempdirgettempdirbtempdirtemplateSpooledTemporaryFileTemporaryDirectoryr_zunexpected keys: %s)r__dict__appendrQrI)rdictexpectedunexpkeys     rtest_exportszTestExports.test_exportss $% %&#$

"	"	"C1v}}H!4!4S!!!E

a-5	7	7	7	7	7rN)r1r2r3rxr4rrraras#77777rracdeZdZdZfdZdZdZdZej	dZ
xZS)TestRandomNameSequencez6Test the internal iterator object _RandomNameSequence.cxtj|_tdSr+)r_RandomNameSequencersuperrDr	__class__s rrDzTestRandomNameSequence.setUps(-//


rc^t|j}||ddddSNr)nextr}r])rss  rtest_get_eight_char_strz.TestRandomNameSequence.test_get_eight_char_strs-LLq"b"%%%%%rci}|j}ttD]D}t|}||ddd|||d||<EdS)Nrrc)r}range
TEST_FILESrr]assertNotIn)rrtr}irs     r	test_manyz TestRandomNameSequence.test_manysuFz""		AQANN1b"b)))Q%%%DGG			rc>d}|j}|D]}|dz
}|dkrdSdS)Nrrc)r})rrr}rs    r
supports_iterz$TestRandomNameSequence.supports_itersG
F		A
FABww		rctj\}}d}	tj}|svtj|tj|t|jdtj|tjdt|j}tj	|t|d}|rtj
|dtj|tj|nE#|rtj
|dtj|tj|wxYw|||dS)Nasciir)exitcode)rGpipeforkclosewriterr}encode_exitreadrIdecoderwait_processassertNotEqual)rread_fdwrite_fdpidparent_valuechild_values      rtest_process_awarenessz-TestRandomNameSequence.test_process_awarenesssbGII	'))C
!!!4<<#6#6w#?#?@@@""" <<L''3|+<+<==DDWMMK
6$S15555HWHX	
6$S15555HWHXK66666s
CD//AE1)r1r2r3__doc__rDrrrr
requires_forkr
__classcell__rs@rrzrzs@@&&&
			W7777777rrzceZdZdZdZdZdS)TestCandidateTempdirListz3Test the internal function _candidate_tempdir_list.ctj}|t|dk|D]}||t
dSNr)r_candidate_tempdir_listassertFalserIassertIsInstancer)rcandcs   rtest_nonempty_listz+TestCandidateTempdirList.test_nonempty_listsb/11Ta(((	*	*A!!!S))))	*	*rc
tj5}dD]:}tj|}|s"tj|||<;t
j}dD]5}tj|}|st|	||6	tj
}n##ttf$rtj
}YnwxYw|	||ddddS#1swxYwYdS)N)TMPDIRTEMPTMP)rEnvironmentVarGuardrGgetenvr-rNrr
ValueErrorassertIngetcwdAttributeErrorOSErrorcurdir)renvenvnamedirnamers     rtest_wanted_dirsz)TestCandidateTempdirList.test_wanted_dirssS
*
,
,	)2
<
<)G,,<#%7??7#;#;CL355D2
-
-)G,,0j 0

gt,,,,
$)++"G,
$
$
$)
$
MM'4(((%	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s6B	C8B21C82CC8CC88C<?C<N)r1r2r3rrrr4rrrrs8==***)))))rrceZdZdZdZdS)TestGetDefaultTempdirzTest _get_default_tempdir().c	tj5fd}tjtd|5tj|t
jgd}tjtd|5|t5tjdddn#1swxYwY|t
jgdddn#1swxYwYtjtd|5|t5tjdddn#1swxYwY|t
jgdddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)Nc
gSr+r4)our_temp_directorysrour_candidate_listzKTestGetDefaultTempdir.test_no_files_left_behind.<locals>.our_candidate_lists*++rrctr+)r)argskwargss  r
raise_OSErrorzFTestGetDefaultTempdir.test_no_files_left_behind.<locals>.raise_OSErrors!))Oropenr)
rrpr	swap_attr_get_default_tempdirrMrGlistdirrFileNotFoundError)rrrrs   @rtest_no_files_left_behindz/TestGetDefaultTempdir.test_no_files_left_behinds

(
*
*	I.@
,
,
,
,
,"8-F#577
I
I-///  ,>!?!?DDD$$$&r6=AAII**+<==88 5777888888888888888$$RZ0B%C%CRHHH	IIIIIIIIIIIIIII&r7MBBII**+<==88 5777888888888888888$$RZ0B%C%CRHHH	IIIIIIIIIIIIIII
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	Is!GAGD
+C	?D
C
D
C
+D
>G
DGDG0F*E+	F*+E/
/F*2E/
3+F*G*F..G1F.2G5GG	GG		GG GN)r1r2r3rrr4rrrr
s.&&IIIIIrrceZdZdZdZdZdS)TestGetCandidateNamesz0Test the internal function _get_candidate_names.cltj}||tjdSr+)r_get_candidate_namesrr|)robjs  rtest_retvalz!TestGetCandidateNames.test_retval0s/+--c8#?@@@@@rctj}tj}|||udSr+)rrrQ)rabs   rtest_same_thingz%TestGetCandidateNames.test_same_thing5s:)++)++QrN)r1r2r3rrrr4rrrr-s;::AAA
     rrc#Ktj}	tjtd|5dVdddn#1swxYwYt	j|dS#t	j|wxYw)Nrm)rrgrrrrmtreerUs r_inside_empty_temp_dirr=s



C

xC
8
8		EEE																	s-A$AA$AA$
AA$$A:c@tjtdfdS)Nrc"tSr+)iternamessr<lambda>z'_mock_candidate_names.<locals>.<lambda>Js
T%[[r)rrrrs`r_mock_candidate_namesrGs)X30000222rcXeZdZejejddZdZdZ	dS)TestBadTempdirz$Emscripten cannot remove write bits.c(t5tjtjjx}}|tjtjztjzz}tj	tj|	tj
tjtjr|d|
t5|dddn#1swxYwY|tjtjgtj	tj|n$#tj	tj|wxYw	ddddS#1swxYwYdS)Nz!can't set the directory read-only)rrGstatrrmst_modeS_IWUSRS_IWGRPS_IWOTHchmodaccessW_OKskipTestrPermissionError	make_temprMr)roldmodemodes   rtest_read_only_directoryz'TestBadTempdir.test_read_only_directoryOs$
%
%	4	4WX%566>>GddlT\1DL@AADHX%t,,,
49X-rw77GMM"EFFF&&77%%NN$$$%%%%%%%%%%%%%%%  H,<!=!=rBBB)73333)733333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sOA/F?AEC8,E8C<	<E?C<	5E5 F!E66FFFct5tjtjd}t
jtd|5|t5|
dddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)Nnonexistentrm)rrGr-joinrrmrrrrrrrms  rtest_nonexisting_directoryz)TestBadTempdir.test_nonexisting_directory`sn
#
%
%	%	%gll8#3]CCG"8Y@@
%
%&&'899%%NN$$$%%%%%%%%%%%%%%%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%sZACB(0BB(BB(BB(C(B,	,C/B,	0CCCct5tjtjd}t
|dtj	td|5|
ttf5|
dddn#1swxYwYdddn#1swxYwYddddS#1swxYwYdS)Nfilewbrm)rrGr-rrrmrrrrrNotADirectoryErrorrrrs  rtest_non_directoryz!TestBadTempdir.test_non_directorygs
#
%
%	%	%gll8#3V<<G$%%'''"8Y@@
%
%&&(:<M'NOO%%NN$$$%%%%%%%%%%%%%%%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%sZA(C)7"CB:.C:B>>CB>CC)C	C)C	C))C-0C-N)
r1r2r3unittestskipIfr
is_emscriptenrrrr4rrrrMseX_E444%%%%%%%%rrceZdZdZGddZddZdZdZd	Zd
Z	e
jdZe
jedejd
Ze
jeddZdZdZdZdS)TestMkstempInnerz*Test the internal function _mkstemp_inner.cXeZdZejZejZej	Z
ejZdZ
dZdZdS)TestMkstempInner.mkstempedc|r|j}n|j}tj|||}tj|||||\|_|_dSr+)_bflags_tflagsrr_mkstemp_innerfdrT)rrUrVrWbinflagsoutput_types       rr.z#TestMkstempInner.mkstemped.__init__ysS
)DLEE LE"5c3DDK#+#:3S%Q\#]#] TWdiiirc:tj|j|dSr+)rGrr)rrs  rrz TestMkstempInner.mkstemped.writesHTWc"""""rcn||j||jdSr+)_closer_unlinkrTrs r__del__z"TestMkstempInner.mkstemped.__del__s0KK   LL#####rN)r1r2r3r_bin_openflagsr_text_openflagsr	rGrrunlinkrr.rrr4rr	mkstempedrssb)*)	^	^	^	#	#	#	$	$	$	$	$rrNrcc0tj|||}|0|turtj}ntj}|
|}|
|}|||||}||j||||Sr+)rrrrkrlrr]rT)rrUrVrWrrrs       r	do_createzTestMkstempInner.do_creates1#sC@@;c!!)++*,,;+--C;+--C~~c3S11ty#sC000rc|d|dd|dd|ddd|ddddS)	NblatrrVrrWrVrWaa.txt)rrrs r
test_basiczTestMkstempInner.test_basicsw'''3%%g...3%%g...3C((..w7774V,,227;;;;;rctj}||dd||dd||dd||ddd||dd	d|t
5|d
dddddn#1swxYwY|t
5||d
ddddn#1swxYwY|t
5||dd
dddddS#1swxYwYdS)NrrUrWrarUrVbrUrVrWaa.txtr)rrlrrrr)rdir_bs  rtest_basic_with_bytes_namesz,TestMkstempInner.test_basic_with_bytes_namess$&&5c**009995d++11':::5d++11':::5d55;;GDDD5e99??HHH


y
)
)	;	;NNrsN++11':::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;


y
)
)	=	=NNu"N--33G<<<	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=


y
)
)	F	FNNu#2N66<<WEEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	Fs6+D99D=D=+FFF:,G33G7:G7cttt}|D]}|d||<dSNrr)listrrrrextantrs   rtest_basic_manyz TestMkstempInner.test_basic_manysIeJ''((	1	1A400F1II	1	1rctj}	||d|t	j|dt
jtj	|dS#t
jtj	|wxYwNrr)
rrgrrr$r%r
gc_collectrGrmdirrrUs  rtest_choose_directoryz&TestMkstempInner.test_choose_directorys  	NNsN##))'222NNw|C00N1177@@@   HSMMMMM
   HSMMMMsA$B"")Cc|}tjtj|jj}d}tjdkr
|dz	}|dz}|||dS)Nwin32I)	rrS_IMODErGrTrsysplatformrM)rrrruusers     rtest_file_modezTestMkstempInner.test_file_modest~~|BGDI..677<7""q=Dz*Hx(((((rzos.spawnl not availablectjrd}nd}|}|t	j|jdd|jz}	t}n"#t$rtj
d}YnwxYwtjtj
tj|d}tjdkrdtjz}d|z}ntj}t	jtjtj||||}||dkd	|z||dkd
|zdS)NvqFz%drztf_inherit_check.pyr:z"%s"z$child process caught fatal signal %dz child process reports failure %d)rverboserrMrGget_inheritabler__file__	NameErrorr>argvr-rrrNr?
executablerP_WAITr)rrCrrmetester	decoratedretvals        rtest_noinheritzTestMkstempInner.test_noinherits`
?	AAA~~+DG44e<<<
DG^	BB			!BBB	bgoobgoob.A.ABB355<7""/If_FFI29cniBOO!:fWD	F	F	F!%G%NOOOOOsA&&BBztext mode not availablec,|d}|d|dtj|jdtj|tj|jdddS)Nr)rsblatsextra
rr)rrrGlseekrSEEK_SETrMrrfs  r
test_textmodezTestMkstempInner.test_textmodes}

NNqN!!		

q"+&&&r**G44444rctjtjtjdtjt
Sr)rr
rkrirrrs rrzTestMkstempInner.make_temps:&x':'<'<'/'='?'?')'/'>'*	,,	,rct5tddd5|\}}tj|||d|\}}tj|||ddddn#1swxYwYddddS#1swxYwYdSNaaabbb)rrrrGrrQendswith)rfd1name1fd2name2s     r!test_collision_with_existing_filez2TestMkstempInner.test_collision_with_existing_filesW$
%
%	3	3
"5%
7
7	3	3>>++LS%HSMMMOOENN511222>>++LS%HSMMMOOENN511222	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	3	3	3	3s5C,B'CC,C	C,C	C,,C03C0ct5tddd5tj}||d|\}}tj|||ddddn#1swxYwYddddS#1swxYwYdSrY)	rrrrgrQr\rrGr)rrUrrTs    r&test_collision_with_existing_directoryz7TestMkstempInner.test_collision_with_existing_directorysE$
%
%	2	2
"5%
7
7	2	2"$$COOCLL//000))JRHRLLLOODMM%00111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s5CBB<0C<C	CC	CCC)NNNrc)r1r2r3rrrr!r+r1r7rskip_unless_working_chmodrAr
skipUnless
has_spawnlrrequires_subprocessrPhas_textmoderVrrarcr4rrrrpsU44$$$$$$$$( <<<FFF"111()))()X%>?? W ""#P#P#"@?#PJX'@AA55BA5,,,333
2
2
2
2
2rrceZdZdZdZdZdS)TestGetTempPrefixzTest gettempprefix().cJtj}||t|t|dtj}||t|t|ddSr)rrirr
assertGreaterrIrjr)rppbs   rtest_sane_templatez$TestGetTempPrefix.test_sane_template$s"$$a%%%3q661%%%

$
&
&b%(((3r77A&&&&&rctjdz}tjd}	tj||}tj|tjtjz}tj	|tj
|tj|dS#tj|wxYw)Nz
xxxxxx.xxxrprefix)rrirgrGr-rrO_RDWRO_CREATrrr5)rrmdrs    rtest_usable_templatez&TestGetTempPrefix.test_usable_template0s
"$$|3B'''	Q""ABI
233BHRLLLIaLLLHQKKKKKBHQKKKKsA4B77C
N)r1r2r3rrorvr4rrrjrj!s8
'
'
'rrjc*eZdZdZdZdZdZdZdS)TestGetTempDirzTest gettempdir().cPtjtjfD]~}|tj|p|tjkd|z|tj|d|zdS)Nz%r is not an absolute pathz%r is not a directory)	rrkrlrQrGr-isabsrisdirrrus  rtest_directory_existsz$TestGetTempDir.test_directory_existsDs%'')=)?)?@	9	9AOOBGMM!,,>RY81<
>
>
>OOBGMM!,,3a7
9
9
9
9	9	9rctj5}|dddddS#1swxYwYdS)Nr)rrdr)rrs  rtest_directory_writablez&TestGetTempDir.test_directory_writableMs
(
*
*	 dJJw	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 s7;;cVtj}tj}tj}|||u|t|t|||tj|dSr+)	rrkrlrQrrJrMrGfsdecode)rrrrs    rrzTestGetTempDir.test_same_thingVs!!!! ""QDGGT!WW---BKNN+++++rctjd}tjdc}t_	tj5}||d<|tj|dddn#1swxYwY|t_tj|dS#|t_tj|wxYw)Nz-Tempr)rrgrmrrrMrkr5)rcase_sensitive_tempdir_tempdirrs    rtest_case_sensitivez"TestGetTempDir.test_case_sensitive`s	"*!1'!:!:%-%5t"("	4.00
PC 6H
  !4!6!68NOOO
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
 (HO233333 (HO23333s/B(-A;/B(;A??B(A?B(("C
N)r1r2r3rr}rrrr4rrrxrxAsV999   ,,,44444rrxc2eZdZdZddZdZdZdZdZdS)	TestMkstempzTest mkstemp().Nc	tj|||}|0|turtj}ntj}|
|}|
|}tj|||\}}tj|\}}tj	|}	|
|	|d|	d|d	|||||t
j|t
j
|dS#t
j|t
j
|wxYw)NrUrrsuffixzDirectory 'z' incorrectly returned as '')rrrrkrlrfrGr-rHrNrMr]rr)
rrUrVrWrrrTrXrYadirs
          rrzTestMkstemp.do_creaters71#sC@@;c!!)++*,,;+--C;+--C%#c#FFF
T

d++
uws##tt=ATT444H	J	J	J	NN4c3///HRLLLIdOOOOO
HRLLLIdOOOOsD*Ec||d|d|dd|dd|d	dS)
Nrrrrrrr .rrrs rr!zTestMkstemp.test_basics333C(((4V,,,3rctj}||d||d||d||dd||dd|d	
|t5|ddddddn#1swxYwY|t5|d	dddddn#1swxYwY|t5|d	dd
ddddS#1swxYwYdS)Nrr#r$r%r&r'r(r).rrrr )rrlrrrr|s  rr+z'TestMkstemp.test_basic_with_bytes_namess*
 ""1#&&&1$'''1$'''1$D1111%W5554   


y
)
)	<	<NNs7N;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<


y
)
)	<	<NNt7N;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<


y
)
)	<	<NNtFN;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<s69CC"%C"D((D,/D,
E33E7:E7ctj}	|||tj|tj|dS#tj|wxYwNr)rrgrr$r%rGr5r6s  rr7z!TestMkstemp.test_choose_directorysj  	NNsN###NNw|C00N111HSMMMMMBHSMMMMs>A))A?ctj}|tjtt	df	tj\}}t
j|t
j|||ttj	t_|tjt|tjt|tj	ttj\}}t
j|t
j|||ttjd\}}t
j|t
j|||ttjd\}}t
j|t
j|||ttjtj\}}t
j|t
j|||t|t_dS#|t_wxYw)Nr rz
test-temp-rqr)rrmrrrJrfrGrrrlrrk)rorig_tempdirrr-s    r.test_for_tempdir_is_bytes_issue40701_api_wartsz:TestMkstemp.test_for_tempdir_is_bytes_issue40701_api_wartss'h.d4jj0ABBB	,'))HBHRLLLIdOOO!!$,,,'355H!!("2E:::!!("5"7"7===!!("6"8"8%@@@'))HBHRLLLIdOOO!!$...'v666HBHRLLLIdOOO!!$,,,'|<<<HBHRLLLIdOOO!!$,,,'H,?,A,ABBBHBHRLLLIdOOO!!$,,,+H|H++++s
I.J>>KrF)	r1r2r3rrr!r+r7rr4rrrrosj.   <<<$,,,,,rrcjeZdZdZdZd
dZdZdZdZdZ	e
jd	Zd
Z
dZdZdS)TestMkdtempzTest mkdtemp().c(tjSr+)rrgrs rrzTestMkdtemp.make_temps!!!rNcZtj|||}|0|turtj}ntj}|
|}|
|}tj|||}	||||||S#tj|xYw)Nr)	rrrrkrlrgr]rGr5)rrUrVrWrrTs      rrzTestMkdtemp.do_creates1#sC@@;c!!)++*,,;+--C;+--CCC@@@	NN4c3///K	HTNNNs9BB*ctj|tj|dtj|dtj|ddtj|dddSNrrrrrrr )rGr5rrs rr!zTestMkdtemp.test_basics
!!"""
C(()))
C(()))
CS11222
Df5566666rctj}tj||tj||dtj||dtj||ddtj||dd|t5tj||d	ddddn#1swxYwY|t5tj||dd
dddn#1swxYwY|t5tj|dddddddS#1swxYwYdS)Nrr$r%r&r#r'r(r)rr r)rrlrGr5rrrr|s  rr+z'TestMkdtemp.test_basic_with_bytes_namess ""
A&&'''
A400111
A400111
A4T::;;;
A5g>>???


y
)
)	C	CHT^^t^AABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C


y
)
)	C	CHT^^u&^AABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C


y
)
)	E	EHT^^7^CCDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	Es6<+D33D7:D7+FFF4+G,,G03G0cJttt}	|D]}|d||<	|D]+}t	|t
rt
j|,dS#|D]+}t	|t
rt
j|,wxYwr-)r.rrrrKrrGr5r/s   rr1zTestMkdtemp.test_basic_manyseJ''((	 
5
5 NNtN44q		
5
 
 a%% HQKKK
 
 V
 
 a%% HQKKK
 sA220B"cLtj}	tj||tj|tj|tj|dS#tj|wxYwr)rrgrGr5rr$r%r6s  rr7z!TestMkdtemp.test_choose_directory	s~  	HT^^^,,---HT^^S(9(9^::;;;HSMMMMMBHSMMMMsA"B

B#cN|}	tjtj|j}|dz}d}t
jdkr
|dz	}|dz}|||tj|dS#tj|wxYw)Niir:r;r<)	rrr=rGrr>r?rMr5)rrUrrur@s     r	test_modezTestMkdtemp.test_modesnn	< 455DEMDH|w&& 1}:.T8,,,HSMMMMMBHSMMMMsA"BB$ct5tddd5tjd}|||jdtj}||ddddn#1swxYwYddddS#1swxYwYdS)NrZr[F)delete)	rrrrdrrQrTr\rg)rrrUs   rraz-TestMkdtemp.test_collision_with_existing_file$sI$
%
%	1	1
"5%
7
7	1	1.e<<<DJJLLLOODI..u55666"$$COOCLL//000
	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s5CBB?3C?C	CC	CCCct5tddd5tj}||dtj}||ddddn#1swxYwYddddS#1swxYwYdSrY)rrrrgrQr\)rdir1dir2s   rrcz2TestMkdtemp.test_collision_with_existing_directory/s3$
%
%	2	2
"5%
7
7	2	2#%%DOODMM%00111#%%DOODMM%00111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2s5B<A7B$B<$B(	(B<+B(	,B<<CCctj}|tjtt	df	tj}t
j|||ttjt_|tjt|tj
t|tjttj}t
j|||ttjd}t
j|||ttjd}t
j|||ttjtj
}t
j|||t|t_dS#|t_wxYw)Nz-dirrz
test-mkdtemp-rqr)rrmrrrJrgrGr5rlrrk)rrr-s   rrz:TestMkdtemp.test_for_tempdir_is_bytes_issue40701_api_warts9s'h.d4jj0ABBB	,#%%DHTNNN!!$,,,'355H!!("2E:::!!("5"7"7===!!("6"8"8%@@@#%%DHTNNN!!$...#6222DHTNNN!!$,,,#?;;;DHTNNN!!$,,,#(;(=(=>>>DHTNNN!!$,,,+H|H++++s
G;IIrF)r1r2r3rrrr!r+r1r7rrdrrarcrr4rrrrs"""(777
E
E
E	 	 	 ()("	1	1	1222,,,,,rrcZeZdZdZfdZfdZGddZd
dZdZd	Z	xZ
S)
TestMktempzTest mktemp().cxtj|_tdSr+)rrgrUr~rDrs rrDzTestMktemp.setUpYs(#%%


rc|jr tj|jd|_tdSr+)rUrGr5r~tearDownrs rrzTestMktemp.tearDown]sB8	HTXDH
rc6eZdZejZejZdZ	dZ
dS)TestMktemp.mktempedctj||||_tjtj|j|jddS)Nrr9)rr;rTrGrrr)rrUrVrWs    rr.zTestMktemp.mktemped.__init__gsD CCHHHDI
HRWTYe<<=====rc:||jdSr+)rrTrs rrzTestMktemp.mktemped.__del__msLL#####rN)r1r2r3rGrrrrrr.rr4rrmktempedrcsA))	>	>	>	$	$	$	$	$rrrc||j||}||j|j|||Sr+)rrUr]rT)rrVrWrs    rrzTestMktemp.do_createps:}}TXsC00ty$(C555rc||d|d|dd|dddSrrrs rr!zTestMktemp.test_basicvl333C(((4V,,,,,rcttt}|D]}|d||<~t	jdSr-)r.rrrrr4r/s   rrzTestMktemp.test_many~sWeJ''((	1	1A400F1IIr)rr)r1r2r3rrDrrrr!rrrs@rrrTs$$$$$$$$---rrc\eZdZdZddZdZdZdZd	Zd
Z	dZ
dZd
ZdZ
dZdZdS)TestNamedTemporaryFilezTest NamedTemporaryFile().NrTc|tj}tj||||}||j||||S)N)rUrrrr)rrkrdr]rT)rrUrVrWrrs      rrz TestNamedTemporaryFile.do_createsV;%''C*s3s28:::	
ty#sC000rc||d|d|dd|dddSrrrs rr!z!TestNamedTemporaryFile.test_basicrrc|}tj|}|j}|j}~|d~|d~t	jdr||dSdS)NfoosbarT)cpython)rweakrefrefrrcheck_impl_detailassertIsNone)rrUwrrwrite2s     rtest_method_lookupz)TestNamedTemporaryFile.test_method_lookups
NN
[^^

f


v$T222	$bbdd#####	$	$rcgdfd}t|D]!\}}|||"||tdz
dS)N)sspam
seggs
sbeans
ctjd}|d|d|S)Nw+brrr)rrdrrseek)rUliness r	make_filez3TestNamedTemporaryFile.test_iter.<locals>.make_filesF+777A
GGCHHUOO$$$
FF1IIIHrrc)	enumeraterMrI)rrrlrs    @r	test_iterz TestNamedTemporaryFile.test_iters322					
iikk**	*	*DAqQa))))CJJN+++++rctj}|tj|jd|jzdS)Nz$NamedTemporaryFile %s does not exist)rrdrQrGr-existsrTrTs  rtest_creates_namedz)TestNamedTemporaryFile.test_creates_namedsQ'))qv..>G	I	I	I	I	Irctj}	tj|5}|ddddn#1swxYwY|tj|g|t
j	|j
d|j
ztj|dS#tj|wxYw)Nrrz(NamedTemporaryFile %s exists after close)rrgrdrrMrGrrr-rrTr5rrUrUs   rtest_del_on_closez(TestNamedTemporaryFile.test_del_on_closes  	,555
!   
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!RZ__b111RW^^AF33BQVK
M
M
M
HSMMMMMBHSMMMMs/CACACAA+CC+ctj}d}	tj|d}|j}|d||tj	|jd|jz|tj
|tj|dS#|tj
|tj|wxYw)NF)rUrrz)NamedTemporaryFile %s missing after close)rrgrdrTrrrQrGr-rrr5)rrUtmprUs    rtest_dis_del_on_closez,TestNamedTemporaryFile.test_dis_del_on_closes  
	+EBBBA&C
GGG
GGIIIOOBGNN1622CafL
N
N
N	#HSMMMMM	#HSMMMMsBC		,C5ctj}|d|||dSNabc
)rrdrrrTs  rtest_multiple_closez*TestNamedTemporaryFile.test_multiple_closesM'))															rcztj5|tjjdddn#1swxYwY|tjjfd}|t|dS)Nc@5	ddddS#1swxYwYdSr+r4rUsr
use_closedz?TestNamedTemporaryFile.test_context_manager.<locals>.use_closedp



















)
rrdrQrGr-rrTrrrrrrUs  @rtest_context_managerz+TestNamedTemporaryFile.test_context_managers

(
*
*	4aOOBGNN1622333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4//000						
*j11111s8AA Actj}|tj||t5tjd|dddn#1swxYwY|t5tjd|dddn#1swxYwY|	tj|gdSNr)rrU)rrg
addCleanuprrrrrdrrMrGrr6s  r
test_bad_modez$TestNamedTemporaryFile.test_bad_modesI  	(#...


z
*
*	<	<'Ts;;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<


y
)
)	9	9'QC8888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9C"-----$A11A58A5B99B=B=cNtj}|tj||t5tjdd|dddn#1swxYwY|tj
|gdSNwzbad-encoding)encodingrU)rrgrrrrLookupErrorrdrMrGrr6s  rtest_bad_encodingz(TestNamedTemporaryFile.test_bad_encodings  	(#...


{
+
+	O	O'n#NNNN	O	O	O	O	O	O	O	O	O	O	O	O	O	O	OC"-----A22A69A6ctj}|tj|tjd5}tjdtj5}t|_	|
t5tj|dddn#1swxYwYdddn#1swxYwYdddn#1swxYwY|j
|tj|gdS)Nztempfile._TemporaryFileWrapperzio.openr)rrgrrrrpatch	mock_openKeyboardInterruptside_effectrrdr
assert_calledrMrGr)rrUmock_ntfrs    rtest_unexpected_errorz,TestNamedTemporaryFile.test_unexpected_errors  	(#...
Z8
9
9	5X
Z	4>#3#3
4
4	58A#4#6#6H ""#455
5
5+4444
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5
		'')))C"-----sZ'C-/.CB?3C?CCCC
C-C	C-C	C--C14C1)NrrT)r1r2r3rrr!rrrrrrrrrrr4rrrrs$$---$$$ ,,,III


 222......	.	.	.	.	.rrceZdZdZddZdZdZdZd	Zd
Z	e
jej
ddZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZe
jej
ddZdZdS)TestSpooledTemporaryFilezTest SpooledTemporaryFile().rNrc`|tj}tj||||}|S)N)max_sizerUrrr)rrkro)rrrUrVrWrs      rrz"TestSpooledTemporaryFile.do_creates5;%''C,hCPS\_```rc|}||j|ddd}||jdS)Nrrr )rrVrW)rr_rolledrTs  rr!z#TestSpooledTemporaryFile.test_basic sZNN###NNCSfN==#####rcj||tjdSr+)rrioIOBasers rtest_is_iobasez'TestSpooledTemporaryFile.test_is_iobase's*dnn..	:::::rchd}tttj}||z
}||ddS)N>rrtellrflushread1rcloseddetacherrorsfilenoisatty__exit____iter____next__rnewlinesreadablereadintoreadlineseekabletruncatewritable	__enter__	readinto1	readlines
writelineszMSpooledTemporaryFile missing attributes from IOBase/BufferedIOBase/TextIOBase)setrUrror)riobase_attrsspooledtempfile_attrs
missing_attrss    rtest_iobase_interfacez.TestSpooledTemporaryFile.test_iobase_interface+sa	
	
	
!$C(E$F$F G G$'<<
[	
	
	
	
	
rcbtj}	tjd|}||j|d||j|j}||	tj|gt|ts6|tj|d|ztj|dS#tj|wxYw)N
)rrUsblat blat blat blat blat z*SpooledTemporaryFile %s exists after close)rrgrorrrrQrTrrMrGrrKintr-rr5)rrUrUfilenames    rrz*TestSpooledTemporaryFile.test_del_on_close?s  	-rsCCCAQY'''
GGL!!!OOAI&&&vH
GGIIIRZ__b111h,,
M  !9!9@8KMMM
HSMMMMMBHSMMMMsC-DD.c |d}|d||jd|t
5|ddddS#1swxYwYdS)Nr rr)rrrMrTassertWarnsResourceWarningrrTs  rtest_del_unrolled_filez/TestSpooledTemporaryFile.test_del_unrolled_filePs
NNBN''	&&&


o
.
.		
IIKKK																		s!BB
Bz&Emscripten cannot fstat renamed files.c|d}|d|j}|tj||t5|	dddn#1swxYwY|
tj|d|zdS)Nrr$rz9Rolled SpooledTemporaryFile (name=%s) exists after delete)rrrTrQrGr-rr%r&rr)rrUrTs   rtest_del_rolled_filez-TestSpooledTemporaryFile.test_del_rolled_fileYs
NNAN&&	vt,,---


o
.
.		
IIKKK															GNN4  G$N	
	
	
	
	
s?B  B$'B$c|d}||jtdD]-}|dd|d.||jdS)Nr$rxxxxxxxxxxxxxxxxxxxx)rrrrrr)rrUrs   rtest_rewrite_smallz+TestSpooledTemporaryFile.test_rewrite_smallksNNBN''###q		A
FF1aLLL
GGI#####rc|d}||j|d||j|d||j|d||jdS)Nr+r$r-
xxxxxxxxxxx)rrrrrQrTs  rtest_write_sequentialz.TestSpooledTemporaryFile.test_write_sequentialts
NNBN''###		###		###	


	"""""rc|}|d|d}||d|}||ddS)N)r1yzrsxyz)rrrrMr)rrUposbufs    rtest_writelinesz(TestSpooledTemporaryFile.test_writelinessrNN	'(((ffQiia   ffhhf%%%%%rc|d}|d||j|d||jdS)N#r$)r-r0sxxxxxr1)rrrrrrQrTs  rtest_writelines_sequentialz3TestSpooledTemporaryFile.test_writelines_sequentialsi
NNBN''	5666###	


	"""""rcP|d}||j|dd}||d||j|d||jdS)Nr+r$rrr1)rrrrrMrrQ)rrUr6s   rtest_sparsez$TestSpooledTemporaryFile.test_sparses
NNBN''###ffS!nnc"""###	


	"""""rc|d}||j||dk||jdS)Nr+r$r)rrrrQr
rTs  rtest_filenoz$TestSpooledTemporaryFile.test_filenoscNNBN''###

Q'''	"""""rctj}|d||j|||dSr)rrorrrrrTs  r#test_multiple_close_before_rolloverz<TestSpooledTemporaryFile.test_multiple_close_before_rolloversc)++	###														rctjd}|d||j|||dS)Nrcr$r)rrorrQrrrTs  r"test_multiple_close_after_rolloverz;TestSpooledTemporaryFile.test_multiple_close_after_rolloversf)1555		"""														rc|d}|j}|j}|j}|d|d|dd||dddS)Nr+r$s#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas#bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbrFsFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)rrrrrM)rrUrrrs     rtest_bound_methodsz+TestSpooledTemporaryFile.test_bound_methodss
NNBN''vv
i
iQ


b#455555rcntjd}|d||j||jd||j|	t5|jdddn#1swxYwY|	t5|jdddn#1swxYwY|	t5|j
dddn#1swxYwY|d||j||jd||j|	t5|jdddn#1swxYwY|	t5|jdddn#1swxYwY|	t5|j
ddddS#1swxYwYdS)Nr r$r0rr1zrb+)rrorrrrMrrrTrrrrr	rQassertIsNotNonerTs  rtest_propertiesz(TestSpooledTemporaryFile.test_propertiessm)2666		###'''!&!!!


~
.
.		
JJ															


~
.
.		
JJ															


~
.
.		
HH																



	"""'''QV$$$


~
.
.		
JJ															


~
.
.		
JJ															


~
.
.		
HH																		slB((B,/B,
C!!C%(C%DD!D#F77F;>F;G00G47G4H**H.1H.cltjddd}|d|d||d|d|d||d||j||jd|	|j
||jtj
||jd||jd	|d
|d||d|d|d||d
||j||jd||j
||jtj
||jd||jd	dS)Nw+r utf-8)rrrzabc
rzdef
zabc
def
strictzxyzzy
zabc
def
xyzzy
zfoobar
zabc
def
xyzzy
foobar
)rrorrrMrrrrrrTrrGlineseprr	rQrHrTs  rtest_text_modez'TestSpooledTemporaryFile.test_text_modes@
)tb3:
<
<
<		q			7+++		q			<000###&&&!&!!!RZ000W---8,,,			q			#6777		q			#BCCC	"""&&&QV$$$RZ000W---8,,,,,rc&tjddddd}|d|d||d||j||jd|	|j
||j||j
d||jd|d	|d
|d||d||j||jd||j
||j||j
d||jddS)NrKr rrLr:)rrnewlinerr	uΛ
ruΜΜΜΜΜΜΜΜΜΜ
u(ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝuBΛ
ΜΜΜΜΜΜΜΜΜΜ
ΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ)rrorrrMrrrrrrTrHrrr	rQrTs  rtest_text_newline_and_encodingz7TestSpooledTemporaryFile.test_text_newline_and_encodings)tb24w19
;
;
;	
	q			<000###&&&!&!!!QZ(((W---8,,,	&'''	
	q			I	K	K	K	"""&&&QV$$$QZ(((W---8,,,,,rc>tjd5|j|jdddn#1swxYwY|jfd}|t|dS)Nrcr$c@5	ddddS#1swxYwYdSr+r4rsrrzQTestSpooledTemporaryFile.test_context_manager_before_rollover.<locals>.use_closedrr)rrorrrrQrrrs  @r$test_context_manager_before_rolloverz=TestSpooledTemporaryFile.test_context_manager_before_rollovers

*A
6
6
6	'!QY'''QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
!!!						
*j11111s5AAActjd5|jd|j|jdddn#1swxYwY|jfd}|t|dS)Nrcr$rc@5	ddddS#1swxYwYdSr+r4rsrrzQTestSpooledTemporaryFile.test_context_manager_during_rollover.<locals>.use_closed*rr)
rrorrrrrQrrrrs  @r$test_context_manager_during_rolloverz=TestSpooledTemporaryFile.test_context_manager_during_rollover!s

*A
6
6
6	'!QY'''
GGH
GGIIIOOAI&&&QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
!!!						
*j11111sA8BB"Bctjdd|j5|jdddn#1swxYwY|jfd}|t|dS)Nrcr$rc@5	ddddS#1swxYwYdSr+r4rsrrzPTestSpooledTemporaryFile.test_context_manager_after_rollover.<locals>.use_closed8rr)
rrorrrQrrrrrrs  @r#test_context_manager_after_rolloverz<TestSpooledTemporaryFile.test_context_manager_after_rollover/s)1555						"""
	'	'QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'!!!						
*j11111sBB
Bcvtjd}|d|d|||j||j	dtjd}|d|d||j||j	dtjd}|d|d|
|j|tj|
jddS)	Nr r$sabcdefg
rrsabcdr)rrorrrrrrM_filegetvaluerQrGfstatr
st_sizerTs  r!test_truncate_with_size_parameterz:TestSpooledTemporaryFile.test_truncate_with_size_parameter=sf

)2666		q				

###))++S111)2666		

1


###))++W555)2666		

2	"""!((**--5r:::::rcp|tjttjdSr+)rrrortypesGenericAliasrs rtest_class_getitemz+TestSpooledTemporaryFile.test_class_getitemUs4h;EB(	*	*	*	*	*r)rNrr) r1r2r3rrr!rrrr'rrrrr)r.r2r8r;r=r?rArCrFrIrOrRrUrXr[rbrfr4rrrrs&&$$$;;;


("X_G





$$$
#
#
#&&&###	#	#	####6660---@---4	2	2	2222222X_G;;;******rrc<eZdZdZdZdZdZdZdZdZ	dZ
d	S)
TestTemporaryFilezTest TemporaryFile().c,tjdSr+)rrers rr!zTestTemporaryFile.test_basic^s
"$$$$$rctj}tj|}|d	t	j|dS#|t	j|xYwr3)rrgrerrGr5rrs   rtest_has_no_namez"TestTemporaryFile.test_has_no_namecsq"$$C&3///A
GGG






			


sA+Bctj}|d|||dSr)rrerrrTs  rrz%TestTemporaryFile.test_multiple_closessM&((A
GGH
GGIII
GGIII
GGIIIIIrczfd}|dd|dd|ddd|d	dd
dS)Nctj|i|5}|||d||ddddS#1swxYwYdSr)rrerrrMr)inputrrfileobjrs    r	roundtripz;TestTemporaryFile.test_mode_and_encoding.<locals>.roundtrip~s+T<V<<<MM%(((LLOOO$$UGLLNN;;;<<<<<<<<<<<<<<<<<<sAA33A7:A7s1234rzabdc
rKuΛzutf-16)rzfoo
r)rQr4)rrqs` rtest_mode_and_encodingz(TestTemporaryFile.test_mode_and_encoding|sv
<
<
<
<
<
Igu%%%Ih%%%Ihx8888Iir222222rctj}|tj||t5tjd|dddn#1swxYwY|t5tjd|dddn#1swxYwY|	tj|gdSr)rrgrrrrrrerrMrGrr6s  rrzTestTemporaryFile.test_bad_modesI"$$COOI,c222"":..
;
;&Dc::::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;""9--
8
8&A37777
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8RZ__b11111rcNtj}|tj||t5tjdd|dddn#1swxYwY|tj
|gdSr)rrgrrrrrrerMrGrr6s  rrz#TestTemporaryFile.test_bad_encodings"$$COOI,c222"";//
N
N&s^MMMM
N
N
N
N
N
N
N
N
N
N
N
N
N
N
NRZ__b11111rc
tj}|tj|tjdd5tjd5}tjd5}tjd5}t|_|	t5tj
|dddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdddn#1swxYwY||tj|gdS)Nztempfile._O_TMPFILE_WORKSFz	os.unlinkzos.openzos.closer)rrgrrrrrrrrrerrMrGr)rrUmock_unlinkr
mock_closes     rrz'TestTemporaryFile.test_unexpected_errors~"$$COOI,c2227??
4
4K((
4,7I&&
4*3J''
4,6*;*=*='&&'89944*s3333444444444444444
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
$$&&&RZ__b11111s	D4D3D.C/	6CC/	CC/	C C/	#D/C3
3D6C3
7D:DD

D
D
DD4D!	!D4$D!	%D44D8;D8N)r1r2r3rr!rkrrrrrrr4rrrhrh[s##	%	%	%
			 				3	3	3	2	2	2	2	2	2	2	2	2	2	2rrhc eZdZdZdZdZdS)
NulledModulescTd|D|_d|jD|_dS)Ncg|]	}|j
Sr4)rr).0mods  r
<listcomp>z*NulledModules.__init__.<locals>.<listcomp>s555cS\555rc6g|]}|Sr4)copy)r|rs  rr~z*NulledModules.__init__.<locals>.<listcomp>s 999999r)refscontents)rmoduless  rr.zNulledModules.__init__s255W555	99ty999


rc.|jD]}|D]}d||<
dSr+)r)rrurws   rrzNulledModules.__enter__s<		A

#
		rct|j|jD].\}}|||/dSr+)ziprrclearupdate)rexc_inforurs    rrzNulledModules.__exit__sK	4=11		DAq
GGIII
HHQKKKK		rN)r1r2r3r.rrr4rrryrysA:::
rryc
eZdZdZ		ddZddZdZd	Zd
Ze	j
dZej
dZej
d
ZdZdZdZdZdZdZdZejeedddZdS)TestTemporaryDirectoryzTest TemporaryDirectory().NrrcFc|tj}tj||||}||j|||||j||||S)N)rUrrrignore_cleanup_errors)rrkrpr]rT
do_create2)	rrUrVrWrecursedirsfilesrrs	         rrz TestTemporaryDirectory.do_createsq;%''C)C"7999	
sxc3///'4777
rc|rdt|D]T}tj|d|z}tj||||dz
||Ut|D]`}t
tj|d|zd5}|ddddn#1swxYwYadS)Nzdir%drcz
test%d.txtrsHello world!)rrGr-rmkdirrrr)rr-rrrrrTrUs        rrz!TestTemporaryDirectory.do_create2s
	>4[[
>
>w||D'A+66gaiu====u	)	)Abgll4)9::DAA
)Q(((
)
)
)
)
)
)
)
)
)
)
)
)
)
)
)	)	)s)CC	C	c@tj5}	dddn#1swxYwY|t5}tj|dddn#1swxYwY||jjtjdSr)rrprrrM	exceptionerrnoENOENT)rrcms   rtest_mkdtemp_failurez+TestTemporaryDirectory.test_mkdtemp_failures
(
*
*	k															


0
1
1	9R'K8888	9	9	9	9	9	9	9	9	9	9	9	9	9	9	9+U\:::::s"&&A))A-0A-ctj}	||}|tj|jd|jz||	tj|jd|jzt	j
|dS#t	j
|wxYw)Nrz$TemporaryDirectory %s does not exist*TemporaryDirectory %s exists after cleanup)rrgrrQrGr-rrTcleanuprr5)rrUrus   rtest_explicit_cleanupz,TestTemporaryDirectory.test_explicit_cleanups  	3''AOOBGNN1622BQVK
M
M
M
IIKKKRW^^AF33DqvM
O
O
O
HSMMMMMBHSMMMMsB*CC+c
tj5}||d}tj|j}||d|dt|dzd5}|	d|
dddn#1swxYwY|tt|d	tt jd
d|||t jd
d|d|
||d|d
ddddS#1swxYwYdS)z=Test that cleanup doesn't return an error when ignoring them.TrUrTemporaryDirectory  does not exist
a_file.txtw+t
Hello world!
N*win1Unexpected number of files in TemporaryDirectory  existence state unexpectedz exists after cleanup)rrprr$r%rTrQrrrrrMrIr.globr!r>r?
startswithrrworking_dirtemp_dir	temp_path	open_files     r"test_explict_cleanup_ignore_errorsz9TestTemporaryDirectory.test_explict_cleanup_ignore_errorssx

(
*
*	Jk~~t&==HX]33IOOI,,..N)NNN
P
P
Pi,.66
#) 0111  """
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
SinnS&9&9!:!:;; !8!8!?!?@@A3<AA
B
B
B
  ""''..NiNNN
P
P
P
  ""HiHHH
J
J
J%	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	Js7A0G
*B:.G
:B>	>G
B>	C>G

GGcr|}|d}tj|jtj|jd||tj|jd|jz|	tj|jd|
tj|jdgd|dS)Nr)rfoorz-Directory pointed to by a symlink was deletedz	test0.txtz>Contents of the directory pointed to by a symlink were deleted)rrGsymlinkrTr-rrrrrQrMr)rd1d2s   r(test_cleanup_with_symlink_to_a_directoryz?TestTemporaryDirectory.test_cleanup_with_symlink_to_a_directorys^^


^^A^
&
&	
27BGLL%88999	

00EO	Q	Q	Qrw//G	I	I	IBG,,{m(	)	)	)	

rc0tj}	||}|j}~|t
j|d|ztj|dS#tj|wxYw)Nr*TemporaryDirectory %s exists after __del__)	rrgrrTrrGr-rr5rrUrurTs    rtest_del_on_collectionz-TestTemporaryDirectory.test_del_on_collections  	3''A6DRW^^D11DtK
M
M
M
HSMMMMMBHSMMMMsAA??Bc
tj5}||d}tj|j}||d|dt|dzd5}|	d~dddn#1swxYwY|
tt|
d	ttjd
d||
|tjd
d|dddddS#1swxYwYdS)
z@Test that ignoring errors works when TemporaryDirectory is gced.TrrrrrrNrrrr)rrprr$r%rTrQrrrrMrIr.rr!r>r?rrs     r$test_del_on_collection_ignore_errorsz;TestTemporaryDirectory.test_del_on_collection_ignore_errors"s
(
*
*	Pk~~t&==HX]33IOOI,,..N)NNN
P
P
Pi,.66
) 0111















SinnS&9&9!:!:;; !8!8!?!?@@A3<AA
B
B
B
  ""''..NiNNN
P
P
P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P	Ps7A0E:B'E:'B+	+E:.B+	/B>E::E>E>c|5}dD]}d||}tjd|\}}}|}|tj	|d|z|dd}|
d||d	|	ddddS#1swxYwYdS)
N)builtinsrGshutilr>rrAaif True:
                    import builtins
                    import os
                    import shutil
                    import sys
                    import tempfile
                    import warnings

                    tmp = tempfile.TemporaryDirectory(dir={dir!r})
                    sys.stdout.buffer.write(tmp.name.encode())

                    tmp2 = os.path.join(tmp.name, 'test_dir')
                    os.mkdir(tmp2)
                    with open(os.path.join(tmp2, "test0.txt"), "w") as f:
                        f.write("Hello world!")

                    {mod}.tmp = tmp

                    warnings.filterwarnings("always", category=ResourceWarning)
                    )rUr}-crrLbackslashreplace
Exception 'ResourceWarning: Implicitly cleaning uprformatrassert_python_okrstriprrGr-rrr)rrUr}codercouterrtmp_names        rtest_del_on_shutdownz+TestTemporaryDirectory.test_del_on_shutdown7sb
^^

	NR
N
N&3C00'( -=dDIIC::<<--//  !9!9H8SUUUjj*<==  s333

GMMMM7
N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	NsCC77C;>C;c
Rtj5}d|}tjd|\}}}tj|}|	tt|dttjdd||	|tjdd|d|d	d
}|d||d||d
|ddddS#1swxYwYdS)z?Test ignoring errors works when a tempdir is gc'ed on shutdown.aif True:
                import pathlib
                import sys
                import tempfile
                import warnings

                temp_dir = tempfile.TemporaryDirectory(
                    dir={working_dir!r}, ignore_cleanup_errors=True)
                sys.stdout.buffer.write(temp_dir.name.encode())

                temp_dir_2 = pathlib.Path(temp_dir.name) / "test_dir"
                temp_dir_2.mkdir()
                with open(temp_dir_2 / "test0.txt", "w") as test_file:
                    test_file.write("Hello world!")
                open_file = open(temp_dir_2 / "open_file.txt", "w")
                open_file.write("Hello world!")

                warnings.filterwarnings("always", category=ResourceWarning)
                )rrrrrrrrLr	ExceptionErrorrN)rrprrrr$r%rrrMrIr.rr!r>r?rrrr)rrr__rrrs       r"test_del_on_shutdown_ignore_errorsz9TestTemporaryDirectory.test_del_on_shutdown_ignore_errorsWs

(
*
*!	Jk$F{F33%
&)9$EELBSSZZ\\%7%7%9%9::ISinnS&9&9!:!:;; !8!8!?!?@@A3<AA
B
B
B
  ""''..NiNNN
P
P
P**W&899C[#...Wc***MMCSIIIC!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	J!	JsE;FF #F c|5}d|}tjd|\}}}|}|tj	|d|z|dd}|
d||d|ddddS#1swxYwYdS)	Naif True:
                import sys
                import tempfile
                import warnings

                def generator():
                    with tempfile.TemporaryDirectory(dir={dir!r}) as tmp:
                        yield tmp
                g = generator()
                sys.stdout.buffer.write(next(g).encode())

                warnings.filterwarnings("always", category=ResourceWarning)
                rrrrLrrrr)rrUrrrrrs       rtest_exit_on_shutdownz,TestTemporaryDirectory.test_exit_on_shutdown|sD
^^

	JFsFOO
)9$EELBSzz||))++HRW^^H55DxO
Q
Q
Q**W&899C\3///MMCSIII)	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	JsCC00C47C4c|5}||d}|j}tjdtfd5tjdt~tjdddn#1swxYwY|	tj|d|zddddS#1swxYwYdS)	N)rUr
ImplicitlyF)quietalways)r<r)
rrTrr@r&rArBrr4rrGr-rrs    rtest_warnings_on_cleanupz/TestTemporaryDirectory.test_warnings_on_cleanups~
^^

	M322A6D!/1@1B6;===
%
%'?KKKK"$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
RW^^D11DtK
M
M
M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	Ms5<C0B
C
B	CB	9CC"Cc|}|||dSr+)rrr|s  rrz*TestTemporaryDirectory.test_multiple_closes<NN									rc`|}|5}|tj||||jdddn#1swxYwY|tj|dSr+)rrQrGr-rrMrTr)rrurTs   rrz+TestTemporaryDirectory.test_context_managersNN
	+$OOBGNN400111T16***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	
--.....sAA11A58A5ctdD]0}|dz}|t|d5|ddd}|5t	j|jd	D]S\}}}|D]5}t	jtj	|||6t	j||T|
dddn#1swxYwY|tj|jdddn#1swxYwY2dS)
Nr;03orrrrrrFtopdown)
rsubTestrrrGwalkrTrr-rrrr)rrrurootrrrTs       r
test_modesz!TestTemporaryDirectory.test_modess!HH	9	9DQJD6$#6#677	
9	
9NN11AN>>  -/WQVU-K-K-K--)dE$)EEDHRW\\$%=%=tDDDDt,,,,IIKKK
                 !7!7888	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	
9	9	9s6D5BC'D5'C++D5.C+/:D55D9	<D9	chflagszrequires os.chflagsc	tjtjz}tj}	t|d	tj||tj|dn/#t$r"}|
d|Yd}~nd}~wwxYwtj|n#tj|wxYw|ddd}|5tj
|jdD]S\}}}|D]5}tjtj|||6tj||T|dddn#1swxYwY|tj|jdS)	Nrrz4chflags() doesn't support UF_IMMUTABLE|UF_NOUNLINK: rrrFr)rUF_IMMUTABLEUF_NOUNLINKrTESTFNrrrGrrrrrrrTr-rrrr)	rr
r"excrurrrrTs	         r
test_flagsz!TestTemporaryDirectory.test_flagss&!D$44#	'3%%'''
(
8U+++
8Q''''
B
B
B

A;>AABBBBBBBB
B
X&&&&IX&&&&NN11AN66
		%'WQVU%C%C%C
(
(!dE!@@DJrw||D$77????
4''''
IIKKK
																
//00000sH"B9
A5B95
B!?BB9B!!B99C,BE<<FF)NrrrcrcrcF)rcrcrc)r1r2r3rrrrrrrskip_unless_symlinkrrcpython_onlyrrrrrrrrrrrehasattrrGrr4rrrrs$$KL(-					)	)	)	);;;JJJ0"#"(




PPP(NNN@#J#J#JJJJJ0MMM ///999XY//1FGG11HG111rr__main__)7rrrrGr$r>r^rA
contextlibrrdrrrtestrtest.supportrrrrrrhrrfr?rrTestCaser
r8rarzrrrcontextmanagerrrrrrjrxrrrrrrdrerhryrr1mainr4rr<module>rs								



				""""""&&&&&&(((((((H,CC
WR
"
"
<9%%JJJ.7.7.7.7.7H-.7.7.7d,2,2,2,2,28$,2,2,2^77777,777<;7;7;7;7;7\;7;7;7~")")")")")|")")")TIIIIILIII@
 
 
 
 
 L
 
 
  222 % % % % % % % %Fn2n2n2n2n2~|n2n2n2b@+4+4+4+4+4\+4+4+4\[,[,[,[,[,,[,[,[,|D,D,D,D,D,.,D,D,D,N00000000|.....\...FB*B*B*B*B*|B*B*B*H
h&<<<I2I2I2I2I2LI2I2I2Z







 d1d1d1d1d1\d1d1d1N	zHMOOOOOr