python (3.11.7)

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

eʤdZddlZddlZddlZddlZddlZddlZddlZddlTddl	m
Z
ddlmZddl
Z
GddejZGdd	ejZGd
dejZGdd
ejZGddejZGddejZGddeZGddejZGddZGddeejZGddZGddeejZGddeejZGd d!ejZGd"d#ejZed$krej dSdS)%z9Unit tests for contextlib.py, and other context managers.N)*)support)	os_helperc eZdZdZdZdZdS)TestAbstractContextManagercGddt}|}|||dS)NceZdZfdZxZS);TestAbstractContextManager.test_enter.<locals>.DefaultEnterc4tj|dSNsuper__exit__selfargs	__class__s  H/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_contextlib.pyrzDTestAbstractContextManager.test_enter.<locals>.DefaultEnter.__exit__  $''''__name__
__module____qualname__r
__classcell__rs@rDefaultEnterr
8
(
(
(
(
(
(
(
(
(rr)AbstractContextManagerassertIs	__enter__)rrmanagers   r
test_enterz%TestAbstractContextManager.test_enters`	(	(	(	(	(1	(	(	(,..

g''))733333rcGddt}|t5|ddddS#1swxYwYdS)NceZdZdS)ETestAbstractContextManager.test_exit_is_abstract.<locals>.MissingExitNrrrrrMissingExitr&Drr))rassertRaises	TypeError)rr)s  rtest_exit_is_abstractz0TestAbstractContextManager.test_exit_is_abstracts					0			

y
)
)		KMMM																		sAA

A
cGdd}|t|tGddt}|t|tGdd|}|t|tGdd|}|t|tdS)	NceZdZdZdZdS)RTestAbstractContextManager.test_structural_subclassing.<locals>.ManagerFromScratchc|Srr(rs rr!z\TestAbstractContextManager.test_structural_subclassing.<locals>.ManagerFromScratch.__enter__#rcdSrr()rexc_type	exc_value	tracebacks    rrz[TestAbstractContextManager.test_structural_subclassing.<locals>.ManagerFromScratch.__exit__%strNrrrr!rr(rrManagerFromScratchr0"s2







rr9ceZdZfdZxZS)LTestAbstractContextManager.test_structural_subclassing.<locals>.DefaultEnterc4tj|dSrr
rs  rrzUTestAbstractContextManager.test_structural_subclassing.<locals>.DefaultEnter.__exit__+rrrrs@rrr;*rrrceZdZdZdS)GTestAbstractContextManager.test_structural_subclassing.<locals>.NoEnterNrrrr!r(rrNoEnterr>0sIIIrr@ceZdZdZdS)FTestAbstractContextManager.test_structural_subclassing.<locals>.NoExitNrrrrr(rrNoExitrB5sHHHrrD)
assertTrue
issubclassrassertFalse)rr9rr@rDs     rtest_structural_subclassingz6TestAbstractContextManager.test_structural_subclassing!s2									

#57MNNOOO	(	(	(	(	(1	(	(	(	

<1GHHIII					(				
G-CDDEEE					'				
F,BCCDDDDDrN)rrrr#r-rHr(rrrrsF444EEEEErrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZejdZejdZdZdZdZdZdS)ContextManagerTestCasec(gtfd}|5}|dg||d|dddn#1swxYwY|gddS)Nc3hKddVddSN*appendstatesrwoohooz@ContextManagerTestCase.test_contextmanager_plain.<locals>.woohoo?s7LLOOOHHHLLrrNrOrNrOrP)contextmanagerassertEqualrRrrUxrTs   @rtest_contextmanager_plainz0ContextManagerTestCase.test_contextmanager_plain=s					
	VXX	UQC(((Q###LLOOO																
-----sAA//A36A3cgtfd}|t5|5}|dg||d|t#1swxYwY	dddn#1swxYwY|gddS)Nc3Kd	dVddS#dwxYwrMrQrSsrrUzBContextManagerTestCase.test_contextmanager_finally.<locals>.woohooLsTLLOOO
"S!!!!!S!!!!s	5ArNrOrV)rWr+ZeroDivisionErrorrXrRrYs   @rtest_contextmanager_finallyz2ContextManagerTestCase.test_contextmanager_finallyJsB		"	"	"	"
	"

0
1
1	*	*
*Q  ,,,  B'''Q')))	
*
*
*
*
*
*
*
*
*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*	
-----s/B$ABB	B$B	B$$B(+B(ctd}	|5ddzdddn#1swxYwYn0#t$r#}tj|j}Yd}~nd}~wwxYw|t
|d||djd||djdGddt}	|5|d#1swxYwYn+#|$r#}tj|j}Yd}~nd}~wwxYw|t
|d||djd||djd	Gd
dt}td|dfD]$}|t|
5	|5|#1swxYwY	|
|dnN#t|$r9}|||tj|j}Yd}~nd}~wwxYw|t
|d||djd||djddddn#1swxYwY&dS)Nc3KdVdSrr(r(rrfz?ContextManagerTestCase.test_contextmanager_traceback.<locals>.f\EEEEErrNrtest_contextmanager_traceback1/0ceZdZdS)RContextManagerTestCase.test_contextmanager_traceback.<locals>.RuntimeErrorSubclassNr'r(rrRuntimeErrorSubclassrgkr*rrhrOzraise RuntimeErrorSubclass(42)ceZdZdS)SContextManagerTestCase.test_contextmanager_traceback.<locals>.StopIterationSubclassNr'r(rrStopIterationSubclassrjxr*rrkspamtype was suppressedzraise stop_exc)rWr^r7
extract_tb
__traceback__rXlennamelineRuntimeError
StopIterationsubTestrnfailr )rrbeframesrhrkstop_excs       rrdz4ContextManagerTestCase.test_contextmanager_traceback[s:			
		;

!














 	;	;	;)!/::FFFFFF	;	
Va((()HIII///					<				;
/
/**2...
/
/
/
/
/
/
/
/
/#	;	;	;)!/::FFFFFF	;	
Va((()HIII)IJJJ					M			
&!!!!&))
	C	CH4>>22
C
C<''&'''''''''II:::;;;;	H~~CCCMM!X...&1!/BBFFFFFFC  Va000  1PQQQ  1ABBB
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C		C	Cs
:.:2:2:
A'A""A'#
D-C99C==DC=DD-
D((D-(K*
H4G77G;;H>G;?HKI'./I"K"I''A(KK	"K	ctd}|}|||tt	dddS)Nc3KdVdSrr(r(rrwheezCContextManagerTestCase.test_contextmanager_no_reraise.<locals>.wheercrfoo)rWr!rGrr,)rr~ctxs   rtest_contextmanager_no_reraisez5ContextManagerTestCase.test_contextmanager_no_reraisese			
	dff

i51A1A4HHIIIIIrctd}|}||t5|t
tdddddn#1swxYwYt
jdr!||j	j
dSdS)Nc3,K	dVdS#dVYdSxYwrr(r(rrwhoozOContextManagerTestCase.test_contextmanager_trap_yield_after_throw.<locals>.whoos0

s
rTcpython)rWr!r+rurr,rcheck_impl_detailrGgengi_suspendedrrrs   r*test_contextmanager_trap_yield_after_throwzAContextManagerTestCase.test_contextmanager_trap_yield_after_throws			
	
dff




|
,
,	<	<LLIe$4$4d;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<$T222	3SW122222	3	3s	*A??BBctd}|}|t5|ddddS#1swxYwYdS)Nc3
KdSrr(r(rrrzFContextManagerTestCase.test_contextmanager_trap_no_yield.<locals>.whoos

r)rWr+rur!rs   r!test_contextmanager_trap_no_yieldz8ContextManagerTestCase.test_contextmanager_trap_no_yields			
	dff


|
,
,		MMOOO																		sAAAc`td}|}||t5|ddddddn#1swxYwYtjdr!||jj	dSdS)Nc3KdVdVdSrr(r(rrrzJContextManagerTestCase.test_contextmanager_trap_second_yield.<locals>.whoosEEEEEEEErTr)
rWr!r+rurrrrGrrrs   r%test_contextmanager_trap_second_yieldz<ContextManagerTestCase.test_contextmanager_trap_second_yields			
	dff




|
,
,	+	+LLtT***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+$T222	3SW122222	3	3s	A--A14A1ctd}|}||t5|t
ddddddS#1swxYwYdS)Nc3>K	dVdS#t$rtwxYwr)ruSyntaxErrorr(rrrzGContextManagerTestCase.test_contextmanager_non_normalised.<locals>.whoos9
"
"
"
"!!
"s
)rWr!r+rrrurs   r"test_contextmanager_non_normalisedz9ContextManagerTestCase.test_contextmanager_non_normaliseds		"	"
	"dff




{
+
+	3	3LLtT222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3s	A33A7:A7c2gtfd}|5}dg|d|td#1swxYwYgddS)Nc3Kd	dVdS#t$rC}|jdgdYd}~dSd}~wwxYw)NrNrOrrV)rRr^rrX)ryrrTs rrUzAContextManagerTestCase.test_contextmanager_except.<locals>.woohoosLLOOO
6$
6
6
6QVAY'''  555555555
6s 
A-8A((A-rNrOrPrV)rWrXrRr^rYs`  @rtest_contextmanager_exceptz1ContextManagerTestCase.test_contextmanager_excepts		6	6	6	6	6
	6VXX	)UQC(((Q###LLOOO#C(((		)	)	)	)	)	)	)	)
	
-----sAA44A8;A8ctd}Gddt}td|dfD]}|t|5	|5|#1swxYwY	||dn-#t
$r }|||Yd}~nd}~wwxYwdddn#1swxYwYdS)Nc3KdVdSrr(r(rrrUzJContextManagerTestCase.test_contextmanager_except_stopiter.<locals>.woohoorcrceZdZdS)YContextManagerTestCase.test_contextmanager_except_stopiter.<locals>.StopIterationSubclassNr'r(rrrkrr*rrkrlrmro)rWrvrwrnrx	Exceptionr )rrUrkr{exs     r#test_contextmanager_except_stopiterz:ContextManagerTestCase.test_contextmanager_except_stopiters			
						M			'v..0E0Ef0M0MN	<	<H4>>22
<
<<''&'''''''''
II:::;;;;!000MM"h////////0	
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<sZ#C%
B/A22A66B9A6:B>C
C!B<7C<CCC	C	cd}i}t||||d}td}	|5|#1swxYwY	|ddS#t$r!}|||Yd}~dSd}~wwxYw)Nztfrom __future__ import generator_stop
from contextlib import contextmanager
@contextmanager
def woohoo():
    yield
rUrlzStopIteration was suppressed)execrvrxrr )rcodelocalsrUr{rs      r!test_contextmanager_except_pep479z8ContextManagerTestCase.test_contextmanager_except_pep479sT66"""! ((	6












II455555	(	(	(MM"h'''''''''	(s/
A;?A?A
B	(BB	ctd}	|5t#1swxYwYn#t$rs}|t	|t
||jdd||j	tYd}~nd}~wwxYw	|5td#1swxYwYdS#t$rn}|t	|t||jdd||j	Yd}~dSd}~wwxYw)Nc3XK	dVdS#t$r}td|d}~wwxYw)Nissue29692:Chainedrruexcs rtest_issue29692zoContextManagerTestCase.test_contextmanager_do_not_unchain_non_stopiteration_exceptions.<locals>.test_issue29692sM
B
B
B
B"#788cA
Bs

)$)rrzissue29692:Unchained)rWr^rr rnrurXrassertIsInstance	__cause__rvassertIsNone)rrrs   r?test_contextmanager_do_not_unchain_non_stopiteration_exceptionszVContextManagerTestCase.test_contextmanager_do_not_unchain_non_stopiteration_exceptionss		B	B
	B
	C ""
(
(''
(
(
(
(
(
(
(
(
(	C	C	CMM$r((L111RWQZ)=>>>!!",0ABBBBBBBB	C
	, ""
<
<#$:;;;
<
<
<
<
<
<
<
<
<
<	,	,	,MM$r((M222RWQZ)?@@@bl+++++++++	,s`
0$(0(0
B-A)B((B-1
C;CCCCC
E"A#EEcztd}|t5|5ddzdddn#1swxYwYdddn#1swxYwY|t5|5t#1swxYwY	ddddS#1swxYwYdS)Nc3^K	dVdS#t$r}td||d}~wwxYw)Nzcaught rrs rrUzLContextManagerTestCase.test_contextmanager_wrap_runtimeerror.<locals>.woohoosM
=
=
=
="?S??33<
=s

,',rNr)rWr+rurvrrUs  r%test_contextmanager_wrap_runtimeerrorz<ContextManagerTestCase.test_contextmanager_wrap_runtimeerrors		=	=
	=

|
,
,		

A














															

}
-
-	$	$
$
$##
$
$
$
$
$
$
$
$
$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$scAAAA	AA	AA#&A#B0BB	B0B	B00B47B4cPd}t|dd}|S)Ncfd}|S)Nc^D]\}}t||||Sr)itemssetattr)funckvkws   rdecoratezXContextManagerTestCase._create_contextmanager_attribs.<locals>.attribs.<locals>.decorate,s888::&&CAaD1%%%%rr()rrs` rattribszFContextManagerTestCase._create_contextmanager_attribs.<locals>.attribs+s#




Orbar)rc3KdVdS)Whee!Nr()rls rbazzBContextManagerTestCase._create_contextmanager_attribs.<locals>.baz1s
EEEEErrW)rrrs   r_create_contextmanager_attribsz5ContextManagerTestCase._create_contextmanager_attribs*sK			
	U					
	
	
rc|}||jd||jddS)Nrr)rrXrrrrs  rtest_contextmanager_attribsz2ContextManagerTestCase.test_contextmanager_attribs8sI1133e,,,%(((((rcd|}||jddSNrrrX__doc__rs  rtest_contextmanager_doc_attribz5ContextManagerTestCase.test_contextmanager_doc_attrib=s11133g.....rcv|d}||jddSrrrs  r*test_instance_docstring_given_cm_docstringzAContextManagerTestCase.test_instance_docstring_given_cm_docstringBs;3d1133D99g.....rctd}|dddd5}||dddddS#1swxYwYdS)Nc3K||||fVdSrr(rrrkwdss    rrUz4ContextManagerTestCase.test_keywords.<locals>.woohooIs!tT******r!,r)rrrrrWrX)rrUtargets   r
test_keywordsz$ContextManagerTestCase.test_keywordsGs		+	+
	+
V"2B
7
7
7	76V%5666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7sAAAcGdd}tfd}|||5	ddddS#1swxYwYdS)NceZdZdS)0ContextManagerTestCase.test_nokeepref.<locals>.ANr'r(rrArPr*rrc3Ktj|}tj|}tj||dVdSr)weakrefrefr
gc_collectr)abrs  rrUz5ContextManagerTestCase.test_nokeepref.<locals>.woohooSsqAAAA   aacc"""aacc"""EEEEErrr)rrrUs`  rtest_nokeeprefz%ContextManagerTestCase.test_nokeeprefOs								
				
	VAACC1133


																				sA

AActd}|t5|dddn#1swxYwY|t5|dddddn#1swxYwY|t5|dddddS#1swxYwYdS)Nc3KdVdSrr(rrs  rrUz8ContextManagerTestCase.test_param_errors.<locals>.woohooarcrr)rWr+r,rs  rtest_param_errorsz(ContextManagerTestCase.test_param_errors`s			
	

y
)
)		FHHH															


y
)
)		F1aLLL															


y
)
)		FQKKKK																		s5AA	A'
BBB%
B??CCcddtfd}|fddddS)Nrc3bKdz
}dz
dVdz|dSNrN)rX)beforedepthncolsrs rrUz5ContextManagerTestCase.test_recursive.<locals>.woohooosN
QJEFQJEEEEQJEUF+++++rc,dkrdSdS)N
r()r	recursivesrrz8ContextManagerTestCase.test_recursive.<locals>.recursivezs"rzz	zrrr)rrUrrrs` @@@rtest_recursivez%ContextManagerTestCase.test_recursivels		,	,	,	,	,	,
	,
					
			###"""""rN)rrrr[r_rdrrrrrrrrrrrrrrequires_docstringsrrrrrrr(rrrJrJ;sv......"0C0C0CdJJJ
3
3
3333333..."<<<$666*,,,.$$$&)))

 //! /
 //! /777"


#####rrJc:eZdZejdZdZdZdS)ClosingTestCasecrtj}td}||j|dSr)closingrrXrcm_docstringobjs   rtest_instance_docsz"ClosingTestCase.test_instance_docss4dmml33333rcgGfdd}|}|gt|5}|||dddn#1swxYwY|dgdS)NceZdZfdZdS)'ClosingTestCase.test_closing.<locals>.Cc2ddSrrQrrTs rclosez-ClosingTestCase.test_closing.<locals>.C.closeQrNrrrrrSsrCr.
 
 
 
 
 
 
 rrrN)rXrrrrZyrTs    @rtest_closingzClosingTestCase.test_closings	 	 	 	 	 	 	 	 	 	 
ACC###
QZZ	#1Q"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#$$$$$sA%%A),A)cgGfdd}|}|g|t5t|5}|||ddzdddn#1swxYwYdddn#1swxYwY|dgdS)NceZdZfdZdS)-ClosingTestCase.test_closing_error.<locals>.Cc2ddSrrQrs rrz3ClosingTestCase.test_closing_error.<locals>.C.closerrNrrSsrrrrrrrNr)rXr+r^rr	s    @rtest_closing_errorz"ClosingTestCase.test_closing_errorsd	 	 	 	 	 	 	 	 	 	 
ACC###


0
1
1		
q  A&&&A














																
$$$$$s6
BB9BB			BB		
BB #B N)rrrrrrrrr(rrrrsO 44! 4	%	%	%%%%%%rrceZdZdZdS)NullcontextTestCasecGdd}|}t|5}|||ddddS#1swxYwYdS)NceZdZdS)/NullcontextTestCase.test_nullcontext.<locals>.CNr'r(rrrrr*rr)nullcontextr )rrcc_ins    rtest_nullcontextz$NullcontextTestCase.test_nullcontexts								
ACC
^^	#tMM$"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#sAAAN)rrrrr(rrrrs######rrceZdZdZdS)FileContextTestCasectj}	d}t|dd5}||j|ddddn#1swxYwY||jd}|t5t|dd5}||j|	|
dddzdddn#1swxYwYdddn#1swxYwY||jtj|dS#tj|wxYw)Nwzutf-8)encodingzBooh
rrNr)
tempfilemktempopenrGclosedwriterEr+r^rXreadrunlink)rtfnrbs   rtestWithOpenz FileContextTestCase.testWithOpenso	"Ac3111
"Q  ***!!!
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
OOAH%%%A""#455

#sW555$$QX...$$QVVXXx888EE
















OOAH%%%S!!!!!IS!!!!swE0A%E%A))E,A)-9E&D$9AD
D$
D	D$D	D$E$D((E+D(,EE5N)rrrr(r(rrrrs#"""""rrc2eZdZdZdZdZdZdZdZdS)LockContextTestCasec|||5||dddn#1swxYwY|||t5|5||ddzdddn#1swxYwYdddn#1swxYwY||dSNrNr)rGrEr+r^)rlocklockeds   rboilerPlatezLockContextTestCase.boilerPlates"""
	&	&OOFFHH%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&"""


0
1
1		

)))A














																
"""""sGA

AAC#B>2C>C	CC	CCCcbtj}|||jdSr)	threadingLockr/r.rr-s  rtestWithLockz LockContextTestCase.testWithLocks-~t{+++++rcbtj}|||jdSr)r1RLockr/	_is_ownedr3s  r
testWithRLockz!LockContextTestCase.testWithRLocks-  t~.....rcdtjfd}||dS)Nc,Sr)r7r-srr.z5LockContextTestCase.testWithCondition.<locals>.lockeds>>###r)r1	Conditionr/rr.r-s  @rtestWithConditionz%LockContextTestCase.testWithConditionsF"$$	$	$	$	$	$v&&&&&rcdtjfd}||dS)Nc^drdSdSNFTacquirereleaser;srr.z5LockContextTestCase.testWithSemaphore.<locals>.locked.||E""
utr)r1	Semaphorer/r=s  @rtestWithSemaphorez%LockContextTestCase.testWithSemaphoresH"$$						
v&&&&&rcdtjfd}||dS)Nc^drdSdSrArBr;srr.z<LockContextTestCase.testWithBoundedSemaphore.<locals>.lockedrEr)r1BoundedSemaphorer/r=s  @rtestWithBoundedSemaphorez,LockContextTestCase.testWithBoundedSemaphoresH)++						
v&&&&&rN)	rrrr/r4r8r>rGrKr(rrr*r*sn	#	#	#,,,///'''''''''''rr*c*eZdZdZdZdZdZdZdZdS)	mycontextz9Example decoration-compatible context manager for testingFNcd|_|SNTstartedr2s rr!zmycontext.__enter__src||_|jSr)rcatchrrs  rrzmycontext.__exit__szr)	rrrrrQrrSr!rr(rrrMrMsGCCG
CErrMcdeZdZejdZdZdZdZdZ	dZ
dZdZd	Z
d
ZdS)TestContextDecoratorcptj}t}||j|dSr)rMrrXrs   rrz'TestContextDecorator.test_instance_docss3!(kkl33333rct}|5}|||||jdddn#1swxYwY||jddS)NNNN)rMr rErQrXr)rcontextresults   rtest_contextdecoratorz*TestContextDecorator.test_contextdecorators++
	-MM&'***OOGO,,,	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-	
&899999s1AAAc(t}|td5|5td#1swxYwY	dddn#1swxYwY||j||jdtt}d|_|5td#1swxYwY||j||jdtdS)NrrT)rMassertRaisesRegex	NameErrorassertIsNotNonerr rS)rrZs  r$test_contextdecorator_with_exceptionz9TestContextDecorator.test_contextdecorator_with_exceptions++

#
#Iu
5
5	'	'
'
'&&&
'
'
'
'
'
'
'
'
'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
W[)))

gk!ni000++

	#	#E"""	#	#	#	#	#	#	#	#W[)))

gk!ni00000s>A=A	AA	AAA7CCCctfd}|jddS)NcpjjdSrrrrErQrZrsrtestz1TestContextDecorator.test_decorator.<locals>.test(3gk***OOGO,,,,,rrY)rMrXrrrfrZs` @rtest_decoratorz#TestContextDecorator.test_decorator%sa++		-	-	-	-	-
	-	
&899999rc<tfd}td5|dddn#1swxYwYjjdtdS)Ncjjt	d)Nr)rrrErQr_resrrfz@TestContextDecorator.test_decorator_with_exception.<locals>.test3s;gk***OOGO,,,E"""rrr)rMr^r_r`rr rhs` @rtest_decorator_with_exceptionz2TestContextDecorator.test_decorator_with_exception0s++		#	#	#	#	#
	#

#
#Iu
5
5		DFFF															W[)))

gk!ni00000sAAActGfddt}|}|dd||jd||jd||jd|}|ddd||jd||jd||jd|}|dd||jd||jddS)	Nc(eZdZddZdS)9TestContextDecorator.test_decorating_method.<locals>.TestNc0||_||_||_dSr)rrr)rrrrs    rmethodz@TestContextDecorator.test_decorating_method.<locals>.Test.methodDsrr)rrrrq)rZsrTestroBs3



W


rrrrNrrrr)rMobjectrqrXrrr)rrrrfrZs   @rtest_decorating_methodz+TestContextDecorator.test_decorating_method?si++							6			tvvAq######&&&tvvCc"""%%%%%%%%%tvva1########rcGddt}|td5|5	dddn#1swxYwYddddS#1swxYwYdS)NceZdZdZdZdS)7TestContextDecorator.test_typo_enter.<locals>.mycontextcdSrr(r2s r	__unter__zATestContextDecorator.test_typo_enter.<locals>.mycontext.__unter___rcdSrr(rTs  rrz@TestContextDecorator.test_typo_enter.<locals>.mycontext.__exit__ar{rN)rrrrzrr(rrrMrx^2







rrMthe context managerContextDecoratorr^r,rrMs  rtest_typo_enterz$TestContextDecorator.test_typo_enter]s					(			
#
#I/D
E
E		
















																		3A AA A	A A	A  A$'A$cGddt}|td5|5	dddn#1swxYwYddddS#1swxYwYdS)NceZdZdZdZdS)6TestContextDecorator.test_typo_exit.<locals>.mycontextcdSrr(r2s rr!z@TestContextDecorator.test_typo_exit.<locals>.mycontext.__enter__kr{rcdSrr(rTs  r__uxit__z?TestContextDecorator.test_typo_exit.<locals>.mycontext.__uxit__mr{rN)rrrr!rr(rrrMrjr}rrMzthe context manager.*__exit__rrs  rtest_typo_exitz#TestContextDecorator.test_typo_exitis					(			
#
#I/N
O
O		
















																		rcGddt}Gdd|t}|fd}|jddS)Nc"eZdZdZdZdZdZdS)HTestContextDecorator.test_contextdecorator_as_mixin.<locals>.somecontextFNcd|_|SrOrPr2s rr!zRTestContextDecorator.test_contextdecorator_as_mixin.<locals>.somecontext.__enter__zs#rc||_dSrrrTs  rrzQTestContextDecorator.test_contextdecorator_as_mixin.<locals>.somecontext.__exit__~
r)rrrrQrr!rr(rrsomecontextrvs<GC







rrceZdZdS)FTestContextDecorator.test_contextdecorator_as_mixin.<locals>.mycontextNr'r(rrrMrr*rrMcpjjdSrrdresrrfzATestContextDecorator.test_contextdecorator_as_mixin.<locals>.testrgrrY)rtrrXr)rrrMrfrZs`   @rtest_contextdecorator_as_mixinz3TestContextDecorator.test_contextdecorator_as_mixinus										&											%5			)++		-	-	-	-	-
	-	
&899999rctfd}g|dfd}|dgdg|dgddS)Nc3hK|dVddS)NrPrQ)r
rTs rrUzETestContextDecorator.test_contextmanager_as_decorator.<locals>.woohoos7LLOOOEEELLrrNc`dg|dSr)rXrR)rZrrTs rrfzCTestContextDecorator.test_contextmanager_as_decorator.<locals>.tests.UQC(((LLOOOOOr	something)rNrrPsomething else)rNrrPr)rrUrfrTs`  @r test_contextmanager_as_decoratorz5TestContextDecorator.test_contextmanager_as_decorators					
	
						
		
[ 5 5 5666
 : : :;;;;;rN)rrrrrrr\rarirlrurrrrr(rrrVrVs 44! 4:::111":::111$$$<						:::0<<<<<rrVceZdZdZejdZdZdZdZ	dZ
dZdZd	Z
d
ZdZdZd
ZdZdZdZdZdZdZdZdZdZdZdS)TestBaseExitStackNc||jj}|}||j|dSr)
exit_stackrrXrs   rrz$TestBaseExitStack.test_instance_docss;.ool33333rcb|5	ddddS#1swxYwYdSr)rr2s rtest_no_resourcesz#TestBaseExitStack.test_no_resourcessy
__

																				s$((c^difdifdifdtdfdtdfdtdfdtddfg}gfd	}|5}t|D]h\}}|r|r|j|g|Ri|}n7|r|j|g|R}n&|r|j|fi|}n||}|||i|jD]o}||dj|||dj|j|	|dj
|j
p	dddn#1swxYwY||g|5}|t5|d
dddn#1swxYwY|t5|jd
dddn#1swxYwY|t5||ddddn#1swxYwYdddn#1swxYwY|gdS)
Nr()rN)rNrsrN)exampler)rcallbackc6||fdS)zTest metadata propagationNrQ)rrr[s  r_exitz.TestBaseExitStack.test_callback.<locals>._exitsMM4,'''''r)argrs)rr)dictrreversedrr _exit_callbacks__wrapped__assertNotEqualrrrrXr+r,)	rexpectedrstackrrrbwrapperr[s	        @r
test_callbackzTestBaseExitStack.test_callbacksD
H
2J
BK
a!
4???#
DOOO$
Da!,,,-
	(	(	(	(	(__

	E%&x00	
(	
(
d.D.&u<t<<<t<<AA.&u4t444AA.&u5555AAu--A

a'''' 0
E
E

gaj4e<<<##GAJ$7HHH!!'!*"4emDDDD
E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	
***
__

	6%""9--
&
&1%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&""9--
0
0((Q(///
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0""9--
6
61555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	
$$$$$s-C0E**E.1E.!J<GJG#	#J&G#	'JH, J,H0	0J3H0	4JI5)J5I9	9J<I9	=JJJctfd}d}fd}Gddt}5}|||jdd|||}|||jddj||||jdd|||}|||jddj||||jdd||||jdd|ddzddddS#1swxYwYdS)	Nc4|dSr)r )r5rexc_tb
exc_raisedrs   r_expect_excz0TestBaseExitStack.test_push.<locals>._expect_excsMM(J/////rcdSrOr(exc_detailss r
_suppress_excz2TestBaseExitStack.test_push.<locals>._suppress_exc4rc|||dSr)r)r5rrrs   r
_expect_okz/TestBaseExitStack.test_push.<locals>._expect_oksEh'''c"""f%%%%%rc eZdZdZdZdZdS)+TestBaseExitStack.test_push.<locals>.ExitCMc||_dSr	check_exc)rrs  r__init__z4TestBaseExitStack.test_push.<locals>.ExitCM.__init__s
!*rc0|ddS)NzShould not be called!)rxr2s rr!z5TestBaseExitStack.test_push.<locals>.ExitCM.__enter__s		122222rc|j|dSrrrrs  rrz4TestBaseExitStack.test_push.<locals>.ExitCM.__exit__s,,,,rNrrrrr!rr(rrExitCMrsA
+
+
+
3
3
3
-
-
-
-
-rrrNr)r^rtrpushr r__self__)rrrrrrcmrs`      @r	test_pushzTestBaseExitStack.test_pushsE&
	0	0	0	0	0	0				&	&	&	&	&	-	-	-	-	-V	-	-	-__

	%JJz"""MM%/3A6
CCC
##BJJrNNNMM%/3A6?DDDJJ}%%%MM%/3A6
FFF$$BJJrNNNMM%/3A6?DDDJJ{###MM%/3A6DDDJJ{###MM%/3A6DDD
aCC																		sFGG!GcGfddt}g|}|5}|jfd}||||||jddj|ddddn#1swxYwY|	gddS)Nc$eZdZfdZfdZdS)4TestBaseExitStack.test_enter_context.<locals>.TestCMc2ddSrrQ)rr[s rr!z>TestBaseExitStack.test_enter_context.<locals>.TestCM.__enter__

a     rc2ddSNrrQ)rrr[s  rrz=TestBaseExitStack.test_enter_context.<locals>.TestCM.__exit__rrNr8r[srTestCMrsG
!
!
!
!
!
!
!
!
!
!
!
!rrc2ddS)NrrQrsrrz3TestBaseExitStack.test_enter_context.<locals>._exit

a     rrrNrs)rNrsrr)
rtrrr`
enter_contextr rrrRrX)rrrrrr[s     @rtest_enter_contextz$TestBaseExitStack.test_enter_contextsP	!	!	!	!	!	!	!V	!	!	!
VXX
__

	%
^
!
!
!
!^
!  '''###MM%/3A6?DDDMM!																
.....sA>CCCcGdd}Gdd}Gdd}|5}|td5||dddn#1swxYwY|td5||dddn#1swxYwY|td5||dddn#1swxYwY||jddddS#1swxYwYdS)NceZdZdS)FTestBaseExitStack.test_enter_context_errors.<locals>.LacksEnterAndExitNr'r(rrLacksEnterAndExitrr*rrceZdZdZdS)?TestBaseExitStack.test_enter_context_errors.<locals>.LacksEntercdSrr()rexc_infos  rrzHTestBaseExitStack.test_enter_context_errors.<locals>.LacksEnter.__exit__r{rNrCr(rr
LacksEnterr#




rrceZdZdZdS)>TestBaseExitStack.test_enter_context_errors.<locals>.LacksExitcdSrr(r2s rr!zHTestBaseExitStack.test_enter_context_errors.<locals>.LacksExit.__enter__r{rNr?r(rr	LacksExitrrrrr~)rr^r,rrGr)rrrrrs     rtest_enter_context_errorsz+TestBaseExitStack.test_enter_context_errorss																								__

	4%''	3HII
9
9##$5$5$7$7888
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9''	3HII
2
2##JJLL111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2''	3HII
1
1##IIKK000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1U2333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s}EB6EB	E	B	
E(CEC	EC	E8D"E"D&	&E)D&	*EEEc4g|5}|jfd}|||ddddn#1swxYwY|ddgdS)Nc2ddSrrQrsrrz+TestBaseExitStack.test_close.<locals>._exit$rrrsrN)rrr`rrRrX)rrrr[s   @r
test_closezTestBaseExitStack.test_close!s
__

	%
^
!
!
!
!^
!  '''KKMMMMM!
																
!Q(((((AA55A9<A9cg|5}|jfd}|||}ddddn#1swxYwYd||gddS)Nc2ddSrrQrsrrz-TestBaseExitStack.test_pop_all.<locals>._exit/rrrNrs)rNrsr)rrr`pop_allrRrrX)rrr	new_stackr[s    @rtest_pop_allzTestBaseExitStack.test_pop_all,s
__

	%
^
!
!
!
!^
!  '''

IMM!
																

a+++++rc|t5|5}|dddzdddn#1swxYwYddddS#1swxYwYdS)NcdS)NFr(rs r<lambda>z3TestBaseExitStack.test_exit_raise.<locals>.<lambda><srrNr)r+r^rrrrs  rtest_exit_raisez!TestBaseExitStack.test_exit_raise9s


0
1
1		""
e

--...!














																		s4A0AA0A	A0A	 A00A47A4c|5}|dddzddddS#1swxYwYdS)NcdSrOr(rs rrz6TestBaseExitStack.test_exit_suppress.<locals>.<lambda>ADrrNrrrrs  rtest_exit_suppressz$TestBaseExitStack.test_exit_suppress?s
__

	%JJ(()))
aCC																		s>AAc`d}	|5}||tddzdddn#1swxYwYn#t$r}|}Yd}~nd}~wwxYw||tt	j|j}dg|jzddgz}|d|D|||j	tt	j|j	j}|d|Dd	gdS)
Nc|rr(rs r	raise_exczBTestBaseExitStack.test_exit_exception_traceback.<locals>.raise_excJIrrNr)test_exit_exception_tracebackz with self.exit_stack() as stack:)
_exit_wrapperzcallback(*args, **kwds))rz	raise excc*g|]}|j|jfSr(rsrt.0rbs  r
<listcomp>zCTestBaseExitStack.test_exit_exception_traceback.<locals>.<listcomp>]s!111!afaf
111rc*g|]}|j|jfSr(rrs  rrzCTestBaseExitStack.test_exit_exception_traceback.<locals>.<listcomp>as!???q1616*???r)rre)rr
ValueErrorrr7rprqcallback_error_internal_framesrX__context__r^)rrrryr	ve_framesr
zde_framess        rrz/TestBaseExitStack.test_exit_exception_tracebackDs				""
ey*555!














			CCCCCC		
c:...():;;	
RS/
0
9
'
)
)		
11y1118	=	=	=	
co/@AAA)#/*GHH
??J???BC	E	E	E	E	Es9A!AAA

A
A
A
A(A##A(c	\Gdd}Gdd}Gdd}	|t5|tt5|5|t5ddzdddn#1swxYwYdddn#1swxYwYdddn#1swxYwYdddn#1swxYwY|d	n#t$rs}||jt||jjt||jjjYd}~nd}~wwxYw|jd}||t||jtdS)
Nc eZdZdZdZdZdS)JTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExcc||_dSrrrTs  rrzSTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExc.__init__hrrc|Srr(r2s rr!zTTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExc.__enter__jr3rc|jrrrs  rrzSTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExc.__exit__ls	hrNrr(rrRaiseExcrgsA










rrc eZdZdZdZdZdS)UTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExcWithContextc"||_||_dSr)outerinner)rrrs   rrz^TestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExcWithContext.__init__ps"
"


rc|Srr(r2s rr!z_TestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExcWithContext.__enter__sr3rc*	|j#|jxYwr)rrrs  rrz^TestBaseExitStack.test_exit_exception_chaining_reference.<locals>.RaiseExcWithContext.__exit__us %*$%*$s		Nrr(rrRaiseExcWithContextrosA
#
#
#



%
%
%
%
%rrceZdZdZdZdS)MTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.SuppressExcc|Srr(r2s rr!zWTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.SuppressExc.__enter__|r3rc.|t|_dSrO)rn
saved_detailsrs  rrzVTestBaseExitStack.test_exit_exception_chaining_reference.<locals>.SuppressExc.__exit__~s+6T

(trNr8r(rrSuppressExcr{s2







rr"rNr0Expected IndexError, but no exception was raised)

IndexErrorKeyErrorAttributeErrorr	rxrrrr!r^)rrrr"r	inner_excs      r&test_exit_exception_chaining_referencez8TestBaseExitStack.test_exit_exception_chaining_referenceds								
	%
	%
	%
	%
	%
	%
	%
	%									J*%%
"
"((>BB""$""%Xj11""EE"""""""""""""""""""""""""""""""""""""""""""""
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
IIHIIII
	G	G	G!!#/8<<<!!#/"=~NNNco9EFFFFFFFF		G -a0	i444i35FGGGGGsC$CB,B,A>	2B>B
BB
B	B,BB,BB, C,B0	0C3B0	4C7C$CC$
CC$$
E!.A)EE!c4d}dfd}	|5}||t||t||t||||tddzdddn#1swxYwY|dn#t$rs}||j	t||j	j	t|
|j	j	j	Yd}~nd}~wwxYwd}||t||j	tdS)Nc|rr(rs rrzATestBaseExitStack.test_exit_exception_chaining.<locals>.raise_excrrc|dSrOr()rr!s rsuppress_exczDTestBaseExitStack.test_exit_exception_chaining.<locals>.suppress_excs
'M4rrNrr#)rrr$r%r&rr	rxrrrr^)rrr,rrr'r!s      @rtest_exit_exception_chainingz.TestBaseExitStack.test_exit_exception_chainings			
					
	J""
ey*555y(333y.999

<(((y*555A
















IIHIIII
	G	G	G!!#/8<<<!!#/"=~NNNco9EFFFFFFFF		G"!$	i444i35FGGGGGs<CBB4(C4B88C;B8<C
EA)E

EcGddttfdtfd}|fD]}5	|5t#1swxYwY	dn,#$r$}|jYd}~nd}~wwxYwdddn#1swxYwYdS)NceZdZdS)PTestBaseExitStack.test_exit_exception_explicit_none_context.<locals>.MyExceptionNr'r(rrMyExceptionr0r*rr1c3dK	dVdS#t$r}	|#d|_wxYwwxYwr)
BaseExceptionr)rr1s rmy_cmzJTestBaseExitStack.test_exit_exception_explicit_none_context.<locals>.my_cms]
+ 
+
+
+!kmm+I&*CO****
+s/"	+/c3K5}||VddddS#1swxYwYdSr)rr)rr4rs rmy_cm_with_exit_stackzZTestBaseExitStack.test_exit_exception_explicit_none_context.<locals>.my_cm_with_exit_stacks""
e##EEGG,,,

















s"AAAr#)rrWrwr$rxrr)rr6rrr1r4s`   @@r)test_exit_exception_explicit_none_contextz;TestBaseExitStack.test_exit_exception_explicit_none_contexts					)			
	+	+	+	+
	+
					
	
/0	R	RB
R
RR++(ll*+++++++++
IIPQQQQ#777%%co666666667	
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R	R	RsZC
B"A11A55B8A59B=CB<B72C7B<<CC	C	cd}d}	|5}|d||tdddn#1swxYwY|dn2#t$r%}||tYd}~nd}~wwxYw	|5}||t||||tdddn#1swxYwY|ddS#t$r&}||tYd}~dSd}~wwxYw)Nc|rr(rs rrzHTestBaseExitStack.test_exit_exception_non_suppressing.<locals>.raise_excrrcdSrOr(rs rr,zKTestBaseExitStack.test_exit_exception_non_suppressing.<locals>.suppress_excrrcdSrr(r(rrrzGTestBaseExitStack.test_exit_exception_non_suppressing.<locals>.<lambda>strr#z.Expected KeyError, but no exception was raised)rrr$rxrrr%r)rrr,rrs     r#test_exit_exception_non_suppressingz5TestBaseExitStack.test_exit_exception_non_suppressings							J""
6e||,,,y*555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
IIHIIII	3	3	3!!#z22222222	3
	H""
6ey(333

<(((y*555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
IIFGGGGG	1	1	1!!#x000000000	1swA;2AA;AA;!A"A;;
B*B%%B*.D<ADD<DD<!D"D<<
E,E''E,ctd}td}td}td}td}	|5}||||||||||#1swxYwYdS#t$r}|||||j|||jj|||jjj|||jjjjYd}~dSd}~wwxYw)Nc3 K	dV|#|xYwrr(rs rgets_the_context_rightzZTestBaseExitStack.test_exit_exception_with_correct_context.<locals>.gets_the_context_rights$
	c				s

rNrsrr)rWrrrr rr)rr?exc1exc2exc3exc4rrs        r(test_exit_exception_with_correct_contextz:TestBaseExitStack.test_exit_exception_with_correct_contexts			
	||||||||
	L""
e##$:$:4$@$@AAA##$:$:4$@$@AAA##$:$:4$@$@AAA
	










	L	L	LMM#t$$$MM#/4000MM#/5t<<<MM#/5A4HHH2>J
L
L
L
L
L
L
L
L
L	Ls8C"AB??CCCC
FBE;;Fcd}td}td}td}td}td}	|5}|||||||||#1swxYwYdS#t$r}|||||j|||jj|||jjj|||jjjj|||jjjjjYd}~dSd}~wwxYw)Nc	|#|xYwrr()r'	outer_excs  rraise_nestedzQTestBaseExitStack.test_exit_exception_with_existing_context.<locals>.raise_nesteds
 srNrsrrr)rrrr rr)	rrHr@rArBrCexc5rrs	         r)test_exit_exception_with_existing_contextz;TestBaseExitStack.test_exit_exception_with_existing_contexts	 	 	 
||||||||||
	Q""
e|T4888|T4888










	Q	Q	QMM#t$$$MM#/4000MM#/5t<<<MM#/5A4HHHMM,8Dd
L
L
L+7CO
Q
Q
Q
Q
Q
Q
Q
Q
Q	Qs7B"$1BBB"BB""
F,CFFcd}	|5}||ddzddddS#1swxYwYdS#t$r }|dYd}~dSd}~wwxYw)NcdSrOr(rs rr,zDTestBaseExitStack.test_body_exception_suppress.<locals>.suppress_exc,rrrNrz%Expected no exception, got IndexError)rrr$rx)rr,rrs    rtest_body_exception_suppressz.TestBaseExitStack.test_body_exception_suppress+s				?""
e

<(((!

















	?	?	?II=>>>>>>>>>	?s9AAAAAA	A
A8A33A8c|5}|d|d|dddddS#1swxYwYdS)NcdSrOr(rs rrzITestBaseExitStack.test_exit_exception_chaining_suppress.<locals>.<lambda>7rrcddzSr,r(rs rrzITestBaseExitStack.test_exit_exception_chaining_suppress.<locals>.<lambda>8s
AaCrcidSrr(rs rrzITestBaseExitStack.test_exit_exception_chaining_suppress.<locals>.<lambda>9s
BqErrrs  r%test_exit_exception_chaining_suppressz7TestBaseExitStack.test_exit_exception_chaining_suppress5s
__

	+%JJ(()))JJ''(((JJ))***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+sAA%%A),A)c|5}tdD]}|t	ddddS#1swxYwYdS)Ni')rrangerint)rris   rtest_excessive_nestingz(TestBaseExitStack.test_excessive_nesting;s
__

	$%5\\
$
$s####
$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$s-AAAcGddt}|}t|_t|_|}|t
d5||dddn#1swxYwY||||j	dd|dS)NceZdZdS)7TestBaseExitStack.test_instance_bypass.<locals>.ExampleNr'r(rrExamplerZBrr[r~rrN)
rtr!rrr^r,rrr r)rr[rrs    rtest_instance_bypassz&TestBaseExitStack.test_instance_bypassAs#####f###
WYYxxhh!!

#
#I/D
E
E	$	$###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$

2

e+B/2B77777s3BBBcGddtGddt}tfd}td}|5}|5}|||||d#1swxYwY	dddn#1swxYwY|j}||||j||	|jj|	|jj
||j
|jdS)NceZdZdS)ITestBaseExitStack.test_dont_reraise_RuntimeError.<locals>.UniqueExceptionNr'r(rrUniqueExceptionr`Nr\rraceZdZdS)LTestBaseExitStack.test_dont_reraise_RuntimeError.<locals>.UniqueRuntimeErrorNr'r(rrUniqueRuntimeErrorrcOr\rrdc3RK	dVdS#t$r}d|d}~wwxYw)NrNz
new exceptionr)rras rsecondz@TestBaseExitStack.test_dont_reraise_RuntimeError.<locals>.secondQsO
@
@
@
@%oo66C?
@s
&!&c3<K	dVdS#t$r}|d}~wwxYwrrfrs rfirstz?TestBaseExitStack.test_dont_reraise_RuntimeError.<locals>.firstXs<



	
s

zplease no infinite loop.)rrurWr+rr	exceptionrrrrr )rrdrgrierr_ctxes_ctxrras       @rtest_dont_reraise_RuntimeErrorz0TestBaseExitStack.test_dont_reraise_RuntimeErrorLs.....i...44444444		@	@	@	@
	@
		
	


/
/	E7""
Ef$$VVXX...$$UUWW---(()CDDD
E
E
E
E
E
E
E
E
E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	Ec?333co/ABBB#/5666#/3444

cmS_55555s1C4AB::B>	>CB>	CCC)rrrrrrrrrrrrrrrrrr(r-r7r<rDrJrMrRrWr]rmr(rrrrsJ 44! 4'%'%'%R   D///&444&	)	)	),,,
EEE@.H.H.H`HHH> R R RDHHH6LLL>QQQ8???+++$$$	8	8	8 6 6 6 6 6rrceZdZeZddgZdS)
TestExitStack)rzraise exc_details[1])rzif cb(*exc_details):N)rrr	ExitStackrr
r(rrroroos#J,,&"""rrocTeZdZdZdZejdZdZdZ	dZ
dZdZdS)TestRedirectStreamNc~|jj}|d}||j|dSr)redirect_streamrrXrs   rrz%TestRedirectStream.test_instance_docs|s@+3""4((l33333rctt|j}|d|tt|j|dSr)getattrsysorig_streamrtr )rorig_stdouts  rtest_no_redirect_in_initz+TestRedirectStream.test_no_redirect_in_initsOc4#344T"""

gc4#344kBBBBBrctj}d}tt|j}||5t
|tt|jdddn#1swxYwY|tt|j||	}|
||dS)Nz<Consider an API like help(), which prints directly to stdoutfile)ioStringIOrvrwrxrtprintr getvaluestriprX)rrbmsgryss     rtest_redirect_to_string_ioz-TestRedirectStream.test_redirect_to_string_iosKMMLc4#344

!
!!
$
$	<	<#GC)9::;;;;	<	<	<	<	<	<	<	<	<	<	<	<	<	<	<

gc4#344kBBB
JJLL  C     s*A;;A?A?ctj}||5}|||ddddS#1swxYwYdSr)r~rrtr )rrbenter_results   rtest_enter_result_is_targetz.TestRedirectStream.test_enter_result_is_targetsKMM

!
!!
$
$	+MM,***	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+	+sA

AAc	Htj}||}tt|j}|5t
ddtt|jdddn#1swxYwY|5t
dtt|jdddn#1swxYwY|tt|j||}|	|ddSNHello )endr}zWorld!r|z
Hello World!

r~rrtrvrwrxrr rrXrrb
write_to_fryrs     rtest_cm_is_reusablez&TestRedirectStream.test_cm_is_reusablesKMM))!,,
c4#344
	I	I'sd6F)G)GHHHH	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I
	A	A(d.>!?!?@@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A

gc4#344kBBB
JJLL,-----s$+A<<BB	*B??CCc	Htj}||}tt|j}|5t
ddtt|j|5t
dtt|jdddn#1swxYwYdddn#1swxYwY|tt|j||}|	|ddSrrrs     rtest_cm_is_reentrantz'TestRedirectStream.test_cm_is_reentrantsKMM))!,,
c4#344
	E	E'sd6F)G)GHHHH
E
EhWS$2B%C%CDDDD
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	


gc4#344kBBB
JJLL,-----s6-B?2*B(B?(B,	,B?/B,	0B??CC)
rrrrtrxrrrrzrrrrr(rrrrrrwsOK 44! 4CCC
!!!+++

.
.
.
.
.
.
.
.rrrceZdZeZdZdS)TestRedirectStdoutstdoutN)rrrredirect_stdoutrtrxr(rrrr%OKKKrrceZdZeZdZdS)TestRedirectStderrstderrN)rrrredirect_stderrrtrxr(rrrrrrrc^eZdZejdZdZdZdZdZ	dZ
dZdZd	Z
d
S)TestSuppresscptj}t}||j|dSr)suppressrrXrs   rrzTestSuppress.test_instance_docss3 'jjl33333rctt5}||ddddS#1swxYwYdSr)rr	r)rrs  rtest_no_result_from_enterz&TestSuppress.test_no_result_from_enters
j
!
!	,\l+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,s8<<ctt5|tdddddddS#1swxYwYdS)Nrsr )rr	rXpowr2s rtest_no_exceptionzTestSuppress.test_no_exceptions
j
!
!	,	,SAYY+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,s%AAAc~tt5tdddddS#1swxYwYdS)Nr)rr,rrr2s rtest_exact_exceptionz!TestSuppress.test_exact_exceptions
i
 
 		FFF																		s266cptt5ddddddS#1swxYwYdS)Nr2)rLookupErrorr2s rtest_exception_hierarchyz%TestSuppress.test_exception_hierarchys}
k
"
"		BKK																		s	+//c|t5tt5ddzdddn#1swxYwYddddS#1swxYwYdSr,)r+r^rr,r2s rtest_other_exceptionz!TestSuppress.test_other_exceptions


0
1
1		)$$

!














																		s3AAAA	A	A	
AA!Ac|t5t5ddzdddn#1swxYwYddddS#1swxYwYdSr,)r+r^rr2s rtest_no_argszTestSuppress.test_no_argss


0
1
1		

!














																		s1A<AA	AA	AAActtt5ddzdddn#1swxYwYttt5tdddddS#1swxYwYdS)NrNrr)rr^r,rrr2s rtest_multiple_exception_argsz)TestSuppress.test_multiple_exception_argss
'
3
3		
aCC															
'
3
3		FFF																		s-11A//A36A3cttt}|5	dddn#1swxYwY|5tddddn#1swxYwY|5|5tddddn#1swxYwYd}ddzdddn#1swxYwY||dS)NrTrNr)rrrrrE)rignore_exceptionsouter_continueds   rrz!TestSuppress.test_cm_is_reentrants$Y//
																	
		FFF															
		"

A














"O
aCC																
	
(((((sS%))AAABA:.B:A>	>BA>	
BBBN)rrrrrrrrrrrrrrr(rrrrs 44! 4,,,,,,

)))))rrc&eZdZdZdZdZdZdS)	TestChdirctjjtjtjt
g|RSr)ospathjoindirnamerealpath__file__)rpartss  rmake_relative_pathzTestChdir.make_relative_pathsFw|GOOBG,,X6677




	
rcltj}|d}|||t	|5|tj|dddn#1swxYwY|tj|dS)Ndata)rgetcwdrrchdirrX)rold_cwdrs   rtest_simplezTestChdir.test_simples)++((00GV,,,
6]]	2	2RY[[&111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2g.....s(BB	Bc\tj}|d}|d}||||ft	|t	|}}|5|tj||5|tj||5|tj|dddn#1swxYwY|tj|dddn#1swxYwY|tj|dddn#1swxYwY|tj|dS)Nrziptestdata)rrrassertNotInrrX)rrtarget1target2chdir1chdir2s      rtest_reentrantzTestChdir.test_reentrants&)++))&11))-887G"4555ww
	3	3RY[['222
7
7  g666;;$$RY[[':::;;;;;;;;;;;;;;;  g666	
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7

RY[['222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3	
g.....sZ6*E: *D<
(C>2D<>DD<D*D<0E:<E	E:E	*E::E>E>ctj}|d}|||	t	|5|tj|t
d#1swxYwYn:#t$r-}|t|dYd}~nd}~wwxYw|tj|dS)Nrboom)rrrrrrXrustr)rrrres    rtest_exceptionzTestChdir.test_exceptions)++((00GV,,,	.v
+
+  f555"6***
+
+
+
+
+
+
+
+
+	.	.	.SWWf--------	.g.....s6B7BB

B
B
B
C	#CC	N)rrrrrrrr(rrrrsP


//////"/////rr__main__)!rr~rrwr r1r7unittest
contextlibrfrtest.supportrrTestCaserrJrrrr*rrMrVrrorrrrrrrmainr(rr<module>rsx??								



""""""(E(E(E(E(E!2(E(E(EVF#F#F#F#F#X.F#F#F#R
%%%%%h'%%%D#####(+###"""""(+"""(-'-'-'-'-'(+-'-'-'` ]<]<]<]<]<8,]<]<]<@J6J6J6J6J6J6J6J6Z%x'86.6.6.6.6.6.6.6.r+X->+X->4)4)4)4)4)8$4)4)4)n,/,/,/,/,/!,/,/,/^zHMOOOOOr