python (3.12.0)

(root)/
lib/
python3.12/
unittest/
__pycache__/
suite.cpython-312.pyc

̑e4dZddlZddlmZddlmZdZdZGdd	eZGd
deZ	GddeZ
d
ZGddeZy)	TestSuiteN)case)utilTc.t||d}|y)NcyNr
B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/unittest/suite.py<lambda>z!_call_if_exists.<locals>.<lambda>sr)getattr)parentattrfuncs   r_call_if_existsrs64.DFrcXeZdZdZdZddZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
Zy)
BaseTestSuitezNA simple test suite that doesn't provide class or module shared fixtures.
    TcBg|_d|_|j|yNr)_tests_removed_testsaddTests)selftestss  r__init__zBaseTestSuite.__init__s

erc`dtj|jdt|dS)N<z tests=>)rstrclass	__class__listrs r__repr__zBaseTestSuite.__repr__s"&--"?dLLrcht||jstSt|t|k(Sr	)
isinstancer!NotImplementedr")rothers  r__eq__zBaseTestSuite.__eq__s)%0!!DzT%[((rc,t|jSr	)iterrr#s r__iter__zBaseTestSuite.__iter__"sDKK  rcX|j}|D]}|s||jz
}|Sr	)rcountTestCases)rcasestests   rr.zBaseTestSuite.countTestCases%s9##	/D,,..	/rct|s#tdjt|t	|t
r+t
|tjtfrtd|jj|y)Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest())callable	TypeErrorformatreprr&type
issubclassrTestCaserrappendrr0s  raddTestzBaseTestSuite.addTest,sj~077T
CDDdD!j26--1K'M?@
@4 rcjt|trtd|D]}|j|y)Nz0tests must be an iterable of tests, not a string)r&strr3r;)rrr0s   rrzBaseTestSuite.addTests6s3eS!NOO	DLL	rct|D]:\}}|jr|S|||js*|j|<|Sr	)	enumerate
shouldStop_cleanup_removeTestAtIndex)rresultindexr0s    rrunzBaseTestSuite.run<sQ$T?	/KE4  

L}}''.	/
rc	|j|}t|dr#|xj|jz
c_d|j|<y#t$rYywxYw)z2Stop holding a reference to the TestCase at index.r.N)rhasattrrr.r3)rrDr0s   rrBz BaseTestSuite._removeTestAtIndexEs^
	&;;u%Dt-.##t':':'<<#!%DKK		sA	AAc&|j|i|Sr	rE)rargskwdss   r__call__zBaseTestSuite.__call__Sstxx&&&rc2|D]}|jy)7Run the tests without collecting errors in a TestResultN)debugr:s  rrOzBaseTestSuite.debugVs	DJJL	rN)r
)__name__
__module____qualname____doc__rArr$r)r,r.r;rrErBrLrOr
rrrrsDH
M)
!!&'rrcPeZdZdZddZdZdZdZdZ	d
dZ		d
d	Z
d
ZdZy)raA test suite is a composite test consisting of a number of TestCases.

    For use, create an instance of TestSuite, then add test case instances.
    When all tests have been added, the suite can be passed to a test
    runner, such as TextTestRunner. It will run the individual test cases
    in the order in which they were added, aggregating the results. When
    subclassing, do not forget to call the base class constructor.
    c4d}t|dddur	dx|_}t|D]\}}|jrnt	|rl|j|||j
|||j|||j|_	t|jdds
t|ddr|s	||n|j|js|j||r*|jd||j|d|_|S)NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)rrVr?r@_isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr!_previousTestClassrOrArB_handleModuleTearDown)rrCrOtopLevelrDr0s      rrEz
TestSuite.runfs6,e4=044F"X$T?	/KE4  4 ++D&9))$7&&tV4,0NN)DNN,?GF$8%@V

}}''.)	/,''f5&&v.%*F"
rc<t}|j|dy)rNTN)_DebugResultrE)rrOs  rrOzTestSuite.debugsrct|dd}|j}||k(ry|jryt|ddryd}	d|_t|dd}t|dd}|Wt|d		||r3|1||jD]}
|j||
dd	|
	t|d
yy#t$rYwxYw#t$r^}t|trd}	d|_n#t$rYnwxYwtj|}	|j||d|	Yd}~d}~wwxYw#t|d
wxYw)Nr]__unittest_skip__F
setUpClassdoClassCleanups_setupStdoutTrinfo_restoreStdout)
rr!rXrWr3r	Exceptionr&rarr "_createClassOrModuleLevelExceptiontearDown_exceptions)rr0rC
previousClasscurrentClassfailedrdree	classNameexc_infos           rr\zTestSuite._handleClassSetUps(<dC
~~=($$<!4e<	-2L*\<>
!,0A4H!FN3
:
GLo9#%$0$D$D/?? &\9%-@//
 (891"	
	!G!&,7!F9=6$ $

l ;I;;FA<H<EGGG& (89seB9/C65D29	CC	D/D*%C-,D*-	C96D*8C99,D*%D2*D//D22Ec@d}t|dd}||j}|S)Nr])rrQ)rrCpreviousModulerms    r_get_previous_modulezTestSuite._get_previous_modules-(<dC
$*55Nrcr|j|}|jj}||k(ry|j|d|_	t
j|}t|dd}|Ct|d		||jr	tjt|dyy#t$rYywxYw#t$r6}t|trd|_|j||d|Yd}~xd}~wwxYw#t$r}|j||d|Yd}~d}~wwxYw#t|dwxYw)NFsetUpModulerfTri)rur!rQr^rXsysmodulesKeyErrorrrrjr&rarkrdoModuleCleanups)rr0rCrt
currentModulemodulerwrps        rr[zTestSuite._handleModuleFixturesQ226:11
N*""6*%*!	[[/FfmT:"FN3
:KM,,O--/ (89)#		!K!&,704F-;;FA<I<IKK	K%O??@M@MOOO
 (89sfB-7B<>D(C>-	B98B9<	C;,C61D(6C;;D(>	D%D D( D%%D((D6Nc<|d|d}|j||||y)Nz ())_addClassOrModuleLevelException)rrCexcmethod_namerrh	errorNames       rrkz,TestSuite._createClassOrModuleLevelExceptions("m2fXQ/	,,VS)TJrct|}t|dd}|-t|tjr||t|y|s%|j
|tjy|j
||y)NaddSkip)	_ErrorHolderrr&rSkipTestr=addErrorrxrr)rrC	exceptionrrherrorrs       rrz)TestSuite._addClassOrModuleLevelExceptions`Y'&)T2:i#GE3y>*s||~6t,rc$|j|}|y|jry	tj|}t|d	t
|dd}|	|	tjt|dy#t$rYywxYw#t$r/}t|tr|j||d|Yd}~dd}~wwxYw#t$r/}t|tr|j||d|Yd}~d}~wwxYw#t|dwxYw)NrftearDownModuleri)
rurXrxryrzrrrjr&rarkrr{)rrCrtr}rrps      rr^zTestSuite._handleModuleTearDowns+226:!$$	[[0F	/	6$V-=tDN)L"$
H%%'
F$451		!L!&,7;;FA<L<JLLL
Hfl3778H8FHH
H
F$45seA<DBC<	BB	C%B>9D>CD	C>%C94D9C>>DDct|dd}|j}||k(s|yt|ddryt|ddryt|ddryt|dd}t|dd}||yt|d	|	||[||jD]E}	t	|t
r|	d	t
j|}|j||	d	d||	
Gt|dy#t$rD}t	|t
rt
j|}|j||d|Yd}~d}~wwxYw#t|dwxYw)Nr]rWFrXrc
tearDownClassrerfrrgri)
rr!rrjr&rarr rkrl)
rr0rCrmrnrrerprqrrs
          rrZz TestSuite._tearDownPreviousClasssz(<dC
~~=(M,A="5u=6/7="5u=
E
!-1BDI _%</	6(G!O*! - A AKH!&,7&qk) $

m <I;;FHQK<K<EAI<K	K
F$45%!G!&,7 $

m <I;;FA<K<EGG	G$
F$45s78D<;C,AD<,	D95:D4/D<4D99D<<E
)Fr	)
rPrQrRrSrErOr\rur[rkrr^rZr
rrrr\sCB,:\#:L9=K.2
-!6F(6rcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)rz
    Placeholder for a TestCase inside a result. As far as a TestResult
    is concerned, this looks exactly like a unit test. Used to insert
    arbitrary errors into a test suite run.
    Nc||_yr	description)rrs  rrz_ErrorHolder.__init__Ts
&rc|jSr	rr#s ridz_ErrorHolder.idWsrcyr	r
r#s rshortDescriptionz_ErrorHolder.shortDescriptionZsrc"d|jdS)Nz<ErrorHolder description=rrr#s rr$z_ErrorHolder.__repr__]s151A1ACCrc"|jSr	)rr#s r__str__z_ErrorHolder.__str__`swwyrcyr	r
rrCs  rrEz_ErrorHolder.runcs	
rc$|j|Sr	rIrs  rrLz_ErrorHolder.__call__hsxxrcyrr
r#s rr.z_ErrorHolder.countTestCasesksr)
rPrQrRrSfailureExceptionrrrr$rrErLr.r
rrrrHs8' D
 rrc:	t|y#t$rYywxYw)z?A crude way to tell apart testcases and suites with duck-typingTF)r+r3)r0s rrYrYns'T
s	ceZdZdZdZdZdZy)razCUsed by the TestSuite to hold previous class when running in debug.NF)rPrQrRrSr]rXr@r
rrrarawsIJrra)
rSrxrr
__unittestrobjectrrrrYrar
rr<module>rsW



IFIXi6
i6X$6$L6r