a :dg2@sxddlZddlmZddlmZdZddZGdd d eZGd d d eZGd d d eZ ddZ GdddeZ dS)N)case)utilTcCst||dd}|dS)NcSsdSNrrr*/usr/local/lib/python3.9/unittest/suite.py z!_call_if_exists..)getattr)parentattrfuncrrr_call_if_exists src@sjeZdZdZdddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) BaseTestSuiteTrcCsg|_d|_||dSNr)_tests_removed_testsaddTests)selftestsrrr__init__szBaseTestSuite.__init__cCsdt|jt|fS)Nz <%s tests=%s>)rstrclass __class__listrrrr__repr__szBaseTestSuite.__repr__cCs t||jstSt|t|kSr) isinstancerNotImplementedr)rotherrrr__eq__s zBaseTestSuite.__eq__cCs t|jSr)iterrrrrr__iter__"szBaseTestSuite.__iter__cCs$|j}|D]}|r ||7}q |Sr)rcountTestCases)rZcasestestrrrr"%s zBaseTestSuite.countTestCasescCsLt|stdt|t|tr|j|7_d|j|<dS)Nr")rr%hasattrrr")rr4r#rrrr2Es  z BaseTestSuite._removeTestAtIndexcOs|j|i|Srr5)rargskwdsrrr__call__SszBaseTestSuite.__call__cCs|D] }|qdSr)debugr,rrrr;VszBaseTestSuite.debugN)r)__name__ __module__ __qualname__r1rrrr!r"r-rr5r2r:r;rrrrrs   rc@sZeZdZdddZddZddZdd Zd d Zdd dZdddZ ddZ ddZ d S)r*FcCsd}t|dddurd|_}t|D]\}}|jr8qt|r||||||||||j|_ t|jdds&t|ddrq&|s||n| |j r&| |q&|r|d|| |d|_|S)NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)r r?r/r0 _isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr_previousTestClassr;r1r2_handleModuleTearDown)rr3r;ZtopLevelr4r#rrrr5fs2         z TestSuite.runcCst}||ddS)NT) _DebugResultr5)rr;rrrr;szTestSuite.debugc Cst|dd}|j}||krdS|jr(dSt|ddr8dSz d|_WntyTYn0t|dd}|durt|dzz |WnPty}z8t|trd|_t |}| ||d|WYd}~n d}~00Wt|d|jdur| t |jdkr|jD]}|j ||d d||d q nVt|d|jdur| t |jdkr|jD]}|j ||d d||d q`0dS) NrF__unittest_skip__F setUpClass _setupStdoutT_restoreStdoutrrinfo)r rrAr@r%r ExceptionrrHrr"_createClassOrModuleLevelExceptiondoClassCleanupslentearDown_exceptions) rr#r3 previousClass currentClassrJe classNameexcrrrrEsX                  zTestSuite._handleClassSetUpcCs"d}t|dd}|dur|j}|S)NrF)r r=)rr3previousModulerTrrr_get_previous_modules  zTestSuite._get_previous_modulec Cs(||}|jj}||krdS||d|_ztj|}WntyPYdS0t|dd}|dur$t |dzz |Wnt y}zpz t Wn4t y}z| ||d|WYd}~n d}~00t|trނd|_| ||d|WYd}~n d}~00Wt |dn t |d0dS)NF setUpModulerKTrL)rZrr=rGrAsysmodulesKeyErrorr rrOrdoModuleCleanupsrPrrH) rr#r3rYZ currentModulemoduler[rVrXrrrrDs>         zTestSuite._handleModuleFixtureNcCs$|d|d}|||||dS)Nz ())_addClassOrModuleLevelException)rr3rXZ method_namer rN errorNamerrrrPsz,TestSuite._createClassOrModuleLevelExceptioncCs^t|}t|dd}|dur8t|tjr8||t|n"|sN||tn |||dS)NaddSkip) _ErrorHolderr rrZSkipTestr.ZaddErrorr\exc_info)rr3 exceptionrcrNerrorrdrrrrbs z)TestSuite._addClassOrModuleLevelExceptioncCsX||}|durdS|jr dSztj|}WntyBYdS0t|dd}|durTt|dzz |Wn@ty}z(t|t r| ||d|WYd}~n d}~00Wt|dz t Wn6ty}z| ||d|WYd}~n d}~00nPt|dz t Wn6tyP}z| ||d|WYd}~n d}~000dS)NtearDownModulerKrL) rZrAr\r]r^r rrOrrHrPrr_)rr3rYr`rirVrrrrGsJ           zTestSuite._handleModuleTearDownc Csrt|dd}|j}||krdSt|ddr.dSt|ddr>dSt|ddrNdSt|dd}|durnt|dzz |WnJty}z2t|trt|}|||d|WYd}~n d}~00Wt|d| t |j d krn|j D]&}t|}|j||d d||d qnTt|d| t |j d krl|j D](}t|}|j||d d||d qB0dS) NrFr@FrArI tearDownClassrKrLrrrM) r rrrOrrHrrrPrQrRrS) rr#r3rTrUrjrVrWrXrrrrCsV                  z TestSuite._tearDownPreviousClass)F)N)N) r<r=r>r5r;rErZrDrPrbrGrCrrrrr*\s !($   r*c@sPeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS)reNcCs ||_dSr description)rrlrrrrBsz_ErrorHolder.__init__cCs|jSrrkrrrridEsz_ErrorHolder.idcCsdSrrrrrrshortDescriptionHsz_ErrorHolder.shortDescriptioncCs d|jfS)NzrkrrrrrKsz_ErrorHolder.__repr__cCs|Sr)rmrrrr__str__Nsz_ErrorHolder.__str__cCsdSrrrr3rrrr5Qsz_ErrorHolder.runcCs ||Srr7rprrrr:Vsz_ErrorHolder.__call__cCsdSrrrrrrr"Ysz_ErrorHolder.countTestCases) r<r=r>ZfailureExceptionrrmrnrror5r:r"rrrrre6s recCs&z t|Wnty YdS0dS)NTF)r r%)r#rrrrB\s   rBc@seZdZdZdZdZdS)rHNF)r<r=r>rFrAr0rrrrrHesrH) r\rrZ __unittestrobjectrr*rerBrHrrrrs  L[&