a DOg4@sxddlZddlmZddlmZdZddZGdd d eZGd d d eZGd d d eZ ddZ GdddeZ dS)N)case)utilTcCst||dd}|dS)NcSsdSNrrr&/usr/lib64/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 CsZt|dd}|j}||krdS|jr(dSt|ddr8dSd}z d|_WntyXYn0t|dd}t|dd}|durVt|dzz |Wnlty}zTt|trd}z d|_WntyYn0t |} | ||d| WYd}~n d}~00|r<|dur<||j D]} |j || dd| | d qWt|d n t|d 0dS) NrF__unittest_skip__F setUpClassdoClassCleanups _setupStdoutTrinfo_restoreStdout) r rrAr@r%r ExceptionrrHrr"_createClassOrModuleLevelExceptiontearDown_exceptions) rr#r3 previousClass currentClassZfailedrJrKe classNameexc_inforrrrEsR                zTestSuite._handleClassSetUpcCs"d}t|dd}|dur|j}|S)NrF)r r=)rr3previousModulerSrrr_get_previous_modules  zTestSuite._get_previous_modulec Cs0||}|jj}||krdS||d|_ztj|}WntyPYdS0t|dd}|dur,t |dzz |WnFt y}z.t |t rd|_| ||d|WYd}~n d}~00|jrz tWn6t y}z| ||d|WYd}~n d}~00Wt |dn t |d0dS)NF setUpModulerLTrO)rYrr=rGrAsysmodulesKeyErrorr rrPrrHrQrdoModuleCleanups)rr#r3rXZ currentModulemodulerZrUrrrrDsB         zTestSuite._handleModuleFixtureNcCs$|d|d}|||||dS)Nz ())_addClassOrModuleLevelException)rr3excZ method_namer rN errorNamerrrrQsz,TestSuite._createClassOrModuleLevelExceptioncCs^t|}t|dd}|dur8t|tjr8||t|n"|sN||tn |||dS)NaddSkip) _ErrorHolderr rrZSkipTestr.ZaddErrorr[rW)rr3 exceptionrcrNerrorrdrrrras z)TestSuite._addClassOrModuleLevelExceptionc Cs||}|durdS|jr dSztj|}WntyBYdS0t|dzt|dd}|durz |Wn@ty}z(t|t r| ||d|WYd}~n d}~00z t WnBty}z(t|t rڂ| ||d|WYd}~n d}~00Wt|dn t|d0dS)NrLtearDownModulerO) rYrAr[r\r]rr rPrrHrQrr^)rr3rXr_rhrUrrrrGs@        zTestSuite._handleModuleTearDownc Cs^t|dd}|j}||ks"|dur&dSt|ddr6dSt|ddrFdSt|ddrVdSt|dd}t|dd}|dur|durdSt|dz|durz |WnJty}z2t|trt|}|||d|WYd}~n d}~00|dur@||j D]<} t|tr| d t|}|j|| d d|| d qWt|d n t|d 0dS) NrFr@FrArI tearDownClassrKrLrrMrO) r rrrPrrHrrrQrR) rr#r3rSrTrirKrUrVrWrrrrCsN                z TestSuite._tearDownPreviousClass)F)N)N) r<r=r>r5r;rErYrDrQrarGrCrrrrr*\s !.&  #r*c@sPeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ dS)reNcCs ||_dSr description)rrkrrrrTsz_ErrorHolder.__init__cCs|jSrrjrrrridWsz_ErrorHolder.idcCsdSrrrrrrshortDescriptionZsz_ErrorHolder.shortDescriptioncCs d|jfS)Nzrjrrrrr]sz_ErrorHolder.__repr__cCs|Sr)rlrrrr__str__`sz_ErrorHolder.__str__cCsdSrrrr3rrrr5csz_ErrorHolder.runcCs ||Srr7rorrrr:hsz_ErrorHolder.__call__cCsdSrrrrrrr"ksz_ErrorHolder.countTestCases) r<r=r>ZfailureExceptionrrlrmrrnr5r:r"rrrrreHs recCs&z t|Wnty YdS0dS)NTF)r r%)r#rrrrBns   rBc@seZdZdZdZdZdS)rHNF)r<r=r>rFrAr0rrrrrHwsrH) r[rrZ __unittestrobjectrr*rerBrHrrrrs  Lm&