a €šçdÈ4ã@sxddlZddlmZddlmZdZdd„ZGdd „d eƒZGd d „d eƒZGd d „d eƒZ dd„Z Gdd„deƒZ dS)éNé)Úcase)ÚutilTcCst||dd„ƒ}|ƒdS)NcSsdS©N©rrrú3/opt/alt/python39/lib64/python3.9/unittest/suite.pyÚ óz!_call_if_exists..)Úgetattr)ÚparentÚattrÚfuncrrrÚ_call_if_exists src@sjeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú BaseTestSuiteTrcCsg|_d|_| |¡dS©Nr)Ú_testsÚ_removed_testsÚaddTests)ÚselfÚtestsrrrÚ__init__szBaseTestSuite.__init__cCsdt |j¡t|ƒfS)Nz <%s tests=%s>)rÚstrclassÚ __class__Úlist©rrrrÚ__repr__szBaseTestSuite.__repr__cCs t||jƒstSt|ƒt|ƒkSr)Ú isinstancerÚNotImplementedr)rÚotherrrrÚ__eq__s zBaseTestSuite.__eq__cCs t|jƒSr)ÚiterrrrrrÚ__iter__"szBaseTestSuite.__iter__cCs$|j}|D]}|r || ¡7}q |Sr)rÚcountTestCases)rZcasesÚtestrrrr"%s zBaseTestSuite.countTestCasescCsLt|ƒstd t|ƒ¡ƒ‚t|tƒr|j| ¡7_d|j|<dS)Nr")rr%Úhasattrrr")rr4r#rrrr2Es  z BaseTestSuite._removeTestAtIndexcOs|j|i|¤ŽSr©r5)rÚargsÚkwdsrrrÚ__call__SszBaseTestSuite.__call__cCs|D] }| ¡qdSr)Údebugr,rrrr;VszBaseTestSuite.debugN)r)Ú__name__Ú __module__Ú __qualname__r1rrrr!r"r-rr5r2r:r;rrrrrs   rc@sZeZdZddd„Zdd„Zdd„Zdd „Zd d „Zdd d„Zddd„Z dd„Z dd„Z d S)r*FcCsÔd}t|ddƒdurd|_}t|ƒD]ˆ\}}|jr8q°t|ƒrˆ| ||¡| ||¡| ||¡|j|_ t|jddƒs&t|ddƒrˆq&|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ƒ}| |d¡dS)NT)Ú _DebugResultr5)rr;rrrr;‡szTestSuite.debugc CsZt|ddƒ}|j}||krdS|jr(dSt|ddƒr8dSd}z d|_WntyXYn0t|ddƒ}t|ddƒ}|durVt|dƒzÂz |ƒWnltyþ}zTt|tƒr®‚d}z d|_WntyÎYn0t   |¡} |  ||d| ¡WYd}~n d}~00|r<|dur<|ƒ|j D]} |j || dd| | d qWt|d ƒn t|d ƒ0dS) NrFÚ__unittest_skip__FÚ setUpClassÚdoClassCleanupsÚ _setupStdoutTr©ÚinfoÚ_restoreStdout) r rrAr@r%rÚ ExceptionrrHrrÚ"_createClassOrModuleLevelExceptionÚtearDown_exceptions) rr#r3Ú previousClassÚ currentClassZfailedrJrKÚeÚ classNameÚexc_inforrrrEŽsR             þ  þ zTestSuite._handleClassSetUpcCs"d}t|ddƒ}|dur|j}|S)NrF)r r=)rr3ÚpreviousModulerSrrrÚ_get_previous_module¼s  zTestSuite._get_previous_modulec Cs0| |¡}|jj}||krdS| |¡d|_ztj|}WntyPYdS0t|ddƒ}|dur,t |dƒz¬z |ƒWnFt yÄ}z.t |t ƒrš‚d|_|  ||d|¡WYd}~n d}~00|jrz t ¡Wn6t y}z|  ||d|¡WYd}~n d}~00Wt |dƒn t |dƒ0dS)NFÚ setUpModulerLTrO)rYrr=rGrAÚsysÚmodulesÚKeyErrorr rrPrrHrQrÚdoModuleCleanups)rr#r3rXZ currentModuleÚmodulerZrUrrrrDÄsB        þ þzTestSuite._handleModuleFixtureNcCs$|›d|›d}| ||||¡dS)Nz (ú))Ú_addClassOrModuleLevelException)rr3ÚexcZ method_namer rNÚ errorNamerrrrQész,TestSuite._createClassOrModuleLevelExceptioncCs^t|ƒ}t|ddƒ}|dur8t|tjƒr8||t|ƒƒn"|sN| |t ¡¡n | ||¡dS)NÚaddSkip) Ú _ErrorHolderr rrZSkipTestr.ZaddErrorr[rW)rr3Z exceptionrcrNÚerrorrdrrrraîs z)TestSuite._addClassOrModuleLevelExceptionc Cs| |¡}|durdS|jr dSztj|}WntyBYdS0t|dƒz¾t|ddƒ}|dur°z |ƒWn@ty®}z(t|t ƒrŠ‚|  ||d|¡WYd}~n d}~00z t   ¡WnBtyþ}z(t|t ƒrÚ‚|  ||d|¡WYd}~n d}~00Wt|dƒn t|dƒ0dS)NrLÚtearDownModulerO) rYrAr[r\r]rr rPrrHrQrr^)rr3rXr_rgrUrrrrGús@      þ  þzTestSuite._handleModuleTearDownc Cs^t|ddƒ}|j}||ks"|dur&dSt|ddƒr6dSt|ddƒrFdSt|ddƒrVdSt|ddƒ}t|ddƒ}|dur‚|dur‚dSt|dƒzÀ|durìz |ƒWnJtyê}z2t|tƒr¼‚t |¡}| ||d|¡WYd}~n d}~00|dur@|ƒ|j D]<} t|tƒr| d ‚t |¡}|j|| d d|| d qWt|d ƒn t|d ƒ0dS) NrFr@FrArIÚ tearDownClassrKrLrrMrO) r rrrPrrHrrrQrR) rr#r3rSrTrhrKrUrVrWrrrrCsN          þ     ý z TestSuite._tearDownPreviousClass)F)N)N) r<r=r>r5r;rErYrDrQrarGrCrrrrr*\s !.&ÿ ÿ #r*c@sPeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dS)reNcCs ||_dSr©Ú description)rrjrrrrTsz_ErrorHolder.__init__cCs|jSrrirrrrÚidWsz_ErrorHolder.idcCsdSrrrrrrÚshortDescriptionZsz_ErrorHolder.shortDescriptioncCs d|jfS)Nzrirrrrr]sz_ErrorHolder.__repr__cCs| ¡Sr)rkrrrrÚ__str__`sz_ErrorHolder.__str__cCsdSrr©rr3rrrr5csz_ErrorHolder.runcCs | |¡Srr7rnrrrr:hsz_ErrorHolder.__call__cCsdSrrrrrrr"ksz_ErrorHolder.countTestCases) r<r=r>ZfailureExceptionrrkrlrrmr5r:r"rrrrreHs recCs&z t|ƒWnty YdS0dS)NTF)r r%)r#rrrrBns   rBc@seZdZdZdZdZdS)rHNF)r<r=r>rFrAr0rrrrrHwsrH) r[ÚrrZ __unittestrÚobjectrr*rerBrHrrrrÚs  Lm&