g4 ddlZddlmZddlmZdZdZGddeZGd d eZGd d eZ d Z GddeZ y)N)case)utilTc.t||d}|y)NcyNr 5/opt/alt/python312/lib64/python3.12/unittest/suite.pyz!_call_if_exists.. sr )getattr)parentattrfuncs r _call_if_existsr s 64 .DFr cVeZdZ dZddZdZdZdZdZdZ dZ d Z d Z d Z d Zy ) BaseTestSuiteTcBg|_d|_|j|yNr)_tests_removed_testsaddTests)selftestss r __init__zBaseTestSuite.__init__s  er c`dtj|jdt|dS)N)rstrclass __class__listrs r __repr__zBaseTestSuite.__repr__s"&--"?dLLr cht||jstSt|t|k(Sr) isinstancer NotImplementedr!)rothers r __eq__zBaseTestSuite.__eq__s)%0! !DzT%[((r c,t|jSr)iterrr"s r __iter__zBaseTestSuite.__iter__"sDKK  r cX|j}|D]}|s||jz }|Sr)rcountTestCases)rcasestests r r-zBaseTestSuite.countTestCases%s4##D,,.. r c t|s#tdjt|t |t r+t |tjtfr td|jj|y)Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest()) callable TypeErrorformatreprr%type issubclassrTestCase TestSuiterappendrr/s r addTestzBaseTestSuite.addTest,sj~077T CD D dD !j26--1K'M?@ @ 4 r cjt|tr td|D]}|j|y)Nz0tests must be an iterable of tests, not a string)r%strr2r;)rrr/s r rzBaseTestSuite.addTests6s. eS !NO OD LL r ct|D]:\}}|jr|S|||js*|j|<|Sr) enumerate shouldStop_cleanup_removeTestAtIndex)rresultindexr/s r runzBaseTestSuite.run<sL$T?KE4    L}}''. +  r c |j|}t|dr#|xj|jz c_d|j|<y#t$rYywxYw)Nr-)rhasattrrr-r2)rrDr/s r rBz BaseTestSuite._removeTestAtIndexEsa@ &;;u%Dt-.##t':':'<<#!%DKK    sA AAc&|j|i|SrrE)rargskwdss r __call__zBaseTestSuite.__call__Sstxx&&&r c4 |D]}|jyr)debugr:s r rNzBaseTestSuite.debugVsED JJLr N)r )__name__ __module__ __qualname__rArr#r(r+r-r;rrErBrLrNr r r rrsDH M) !!  &'r rcNeZdZ d dZdZdZdZdZ d dZ d dZ d Z d Z y) r8c4d}t|dddur dx|_}t|D]\}}|jrnt |rl|j |||j |||j|||j|_ t|jdds t|ddr|s ||n|j|js|j||r*|j d||j|d|_|S)NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)r rTr?r@ _isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr _previousTestClassrNrArB_handleModuleTearDown)rrCrNtopLevelrDr/s r rEz TestSuite.runfs 6,e 4 =04 4F "X$T?KE4  4 ++D&9))$7&&tV4,0NN)DNN,?GF$8%@V  }}''.)+,   ' 'f 5  & &v .%*F " r c> t}|j|dy)NT) _DebugResultrE)rrNs r rNzTestSuite.debugsE r ct|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) r r rVrUr2r Exceptionr%r_rr"_createClassOrModuleLevelExceptiontearDown_exceptions) rr/rC previousClass currentClassfailedrbrce classNameexc_infos r rZzTestSuite._handleClassSetUps~( !,0A4H  ! FN 3 : GLo9#%$0$D$D?? & \9%-@/%E  (891 "   ! G!&,7!F9= 6$ $ l ;I;;FA D( C>- B98B9< C;,C61D(6C;;D(> D%D D( D%%D((D6Nc<|d|d}|j||||y)Nz ())_addClassOrModuleLevelException)rrCexc method_namerrf errorNames r riz,TestSuite._createClassOrModuleLevelExceptions("m2fXQ/  ,,VS)TJr ct|}t|dd}|-t|tjr||t |y|s%|j |tjy|j ||y)NaddSkip) _ErrorHolderr r%rSkipTestr=addErrorrvrp)rrC exceptionrrferrorrs r r~z)TestSuite._addClassOrModuleLevelExceptions`Y'&)T2  :i#G E3y> *s||~6t,r c$|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)NrdtearDownModulerg) rsrVrvrwrxrr rhr%r_rirry)rrCrrr{rrns r r\zTestSuite._handleModuleTearDowns+226:  !   $ $  [[0F / 6$V-=tDN)L"$ H%%' F$4 51   !L!&,7;;FA9D>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|d y#t$rD}t |t rt j|}|j||d|Yd}~d}~wwxYw#t|d wxYw) Nr[rUFrVra tearDownClassrcrdrrerg) r r rrhr%r_rrrirj) rr/rCrkrlrrcrnrorps r rXz TestSuite._tearDownPreviousClassst(rsW    IFIXi6 i6X$6$L6r