Ë ‚Ö¦iÈ4ãó�—dZddlZddlmZddlmZdZd„ZGd„d e«ZGd „de«Z Gd „d e«Z d „Z Gd„de«Z y)Ú TestSuiteéNé)Úcase)ÚutilTcó.—t||d„«}|«y)Ncó—y©N©r óú'/usr/lib64/python3.12/unittest/suite.pyÚz!_call_if_exists.. s€¨r )Úgetattr)ÚparentÚattrÚfuncs r Ú_call_if_existsr s€Ü �6˜4¡Ó .€DÙ…Fr cóX—eZdZdZdZdd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zy)Ú BaseTestSuitezNA simple test suite that doesn't provide class or module shared fixtures. TcóB—g|_d|_|j|«y©Nr)Ú_testsÚ_removed_testsÚaddTests)ÚselfÚtestss r Ú__init__zBaseTestSuite.__init__s€ØˆŒ ØˆÔØ � ‰ �eÕr có`—dtj|j«›dt|«›d�S)NÚ)rÚstrclassÚ __class__Úlist©rs r Ú__repr__zBaseTestSuite.__repr__s�Ü"&§-¡-°·±Õ"?ÄÀdÅÐLÐLr cóh—t||j«stSt|«t|«k(Sr )Ú isinstancer!ÚNotImplementedr")rÚothers r Ú__eq__zBaseTestSuite.__eq__s)€Ü˜% §¡Ô0Ü!Ð !Ü�D‹zœT %›[Ñ(Ð(r có,—t|j«Sr )Úiterrr#s r Ú__iter__zBaseTestSuite.__iter__"s€Ü�D—K‘KÓ Ð r cóX—|j}|D]}|sŒ||j«z }Œ|Sr )rÚcountTestCases)rÚcasesÚtests r r.zBaseTestSuite.countTestCases%s4€Ø×#Ñ#ˆÛˆDÚØ˜×,Ñ,Ó.Ñ.‘ððˆ r có —t|«s#tdjt|«««‚t |t «r+t |tjtf«r td«‚|jj|«y)Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest()) ÚcallableÚ TypeErrorÚformatÚreprr&ÚtypeÚ issubclassrÚTestCaserrÚappend©rr0s r ÚaddTestzBaseTestSuite.addTest,sj€ä˜Œ~ÜÐ0×7Ñ7¼¸T» ÓCÓDÐ DÜ �dœDÔ !¤j°Ü26·-±-ÄÐ1Kô'Mäð?ó@ð @à � ‰ ×ј4Õ r cój—t|t«r td«‚|D]}|j|«Œy)Nz0tests must be an iterable of tests, not a string)r&Ústrr3r;)rrr0s r rzBaseTestSuite.addTests6s.€Ü �eœSÔ !ÜÐNÓOÐ OÛˆDØ �L‰L˜Õ ñr có–—t|«D]:\}}|jr|S||«|jsŒ*|j|«Œ<|Sr )Ú enumerateÚ shouldStopÚ_cleanupÚ_removeTestAtIndex)rÚresultÚindexr0s r ÚrunzBaseTestSuite.run<sL€Ü$ Tž?‰KˆE�4Ø× Ò Øðˆ ñ �ŒLØ�}‹}Ø×'Ñ'¨Õ.ð +ð ˆ r có¾— |j|}t|d«r#|xj|j«z c_d|j|<y#t$rYywxYw)z2Stop holding a reference to the TestCase at index.r.N)rÚhasattrrr.r3)rrDr0s r rBz BaseTestSuite._removeTestAtIndexEs^€ð &Ø—;‘;˜uÑ%ˆDô�tÐ-Ô.Ø×#Ò# t×':Ñ':Ó'<Ñ<Õ#Ø!%ˆD�K‰K˜Ò øôò á ð ús‚AÁ AÁAcó&—|j|i|¤ŽSr ©rE)rÚargsÚkwdss r Ú__call__zBaseTestSuite.__call__Ss€Øˆt�x‰x˜Ð& Ñ&Ð&r có2—|D]}|j«Œy)ú7Run the tests without collecting errors in a TestResultN)Údebugr:s r rOzBaseTestSuite.debugVs€ãˆDØ �J‰J�Lñr N)r )Ú__name__Ú __module__Ú __qualname__Ú__doc__rArr$r)r,r.r;rrErBrLrOr r r rrsD„ñà€Hóò Mò)ò !òò!òò ò &ò'ór rcóP—eZdZdZd d„Zd„Zd„Zd„Zd„Z d d„Z d d „Z d „Z d „Z y)ra³A 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. có4—d}t|dd«dur dx|_}t|«D]Ã\}}|jrn²t |«rl|j ||«|j ||«|j||«|j|_ t|jdd«s t|dd«rŒ‹|s ||«n|j«|jsŒ³|j|«ŒÅ|r*|j d|«|j|«d|_|S)NFÚ_testRunEnteredTÚ_classSetupFailedÚ_moduleSetUpFailed)rrVr?r@Ú _isnotsuiteÚ_tearDownPreviousClassÚ_handleModuleFixtureÚ_handleClassSetUpr!Ú_previousTestClassrOrArBÚ_handleModuleTearDown)rrCrOÚtopLevelrDr0s r rEz TestSuite.runfs€ØˆÜ �6Ð,¨eÓ 4¸Ñ =Ø04Ð 4ˆFÔ " Xä$ Tž?‰KˆE�4Ø× Ò Ùä˜4Ô Ø×+Ñ+¨D°&Ô9Ø×)Ñ)¨$°Ô7Ø×&Ñ& t¨VÔ4Ø,0¯N©N�Ô)ä˜DŸN™NÐ,?ÀÔGܘFÐ$8¸%Ô@ØáÙ�V• à— ‘ ” à�}‹}Ø×'Ñ'¨Õ.ð)+ñ, Ø × 'Ñ '¨¨fÔ 5Ø × &Ñ & vÔ .Ø%*ˆFÔ "؈ r có<—t«}|j|d«y)rNTN)Ú _DebugResultrE)rrOs r rOzTestSuite.debug‡s€ä“ˆØ �‰�˜Õr có†—t|dd«}|j}||k(ry|jryt|dd«ryd} d|_t|dd«}t|dd«}|�Wt |d« |«|r3|�1|«|jD]} |j|| dd | ¬ «Œt |d «yy#t$rYŒwxYw#t $r^}t|t«r‚d} d|_n#t$rYnwxYwtj|«} |j||d| «Yd}~Œ´d}~wwxYw#t |d «wxYw) Nr]Ú__unittest_skip__FÚ setUpClassÚdoClassCleanupsÚ _setupStdoutTr©ÚinfoÚ_restoreStdout) rr!rXrWr3rÚ Exceptionr&rarr Ú"_createClassOrModuleLevelExceptionÚtearDown_exceptions) rr0rCÚ previousClassÚ currentClassÚfailedrdreÚeÚ classNameÚexc_infos r r\zTestSuite._handleClassSetUpŽs~€Ü Ð(<¸dÓCˆ Ø—~‘~ˆ Ø ˜=Ò (Ø Ø × $Ò $Ø Ü �<Ð!4°eÔ <Ø àˆð Ø-2ˆLÔ *ô ˜\¨<¸Ó>ˆ Ü! ,Ð0AÀ4ÓHˆØ Ð !Ü ˜F NÔ 3ð :ð GÙ”Lñ˜oÐ9Ù#Ô%Ø$0×$DÔ$D˜Ø×?Ñ?Ø &¨°© °\À9Ø%-ð@õ/ð%Eô   Ð(8Õ9ð1 "øôò ñ ð ûô!ò GÜ! &¬,Ô7ØØ!�FðØ9=˜ Õ6øÜ$òÙðúä $§ ¡ ¨lÓ ;�IØ×;Ñ;¸FÀAØ D( C>Â- B9Â8B9Â< C;Ã,C6Ã1D(Ã6C;Ã;D(Ã> D%ÄD ÄD(Ä D%Ä%D(Ä(D6Ncó<—|›d|›d�}|j||||«y)Nz (Ú))Ú_addClassOrModuleLevelException)rrCÚexcÚ method_namerrhÚ errorNames r rkz,TestSuite._createClassOrModuleLevelExceptionés(€à"�m 2 f X¨QÐ/ˆ Ø ×,Ñ,¨V°S¸)ÀTÕJr có—t|«}t|dd«}|�-t|tj«r||t |««y|s%|j |tj««y|j ||«y)NÚaddSkip) Ú _ErrorHolderrr&rÚSkipTestr=ÚaddErrorrxrr)rrCÚ exceptionrƒrhÚerrorr…s r r€z)TestSuite._addClassOrModuleLevelExceptionîs`€ä˜YÓ'ˆÜ˜& )¨TÓ2ˆØ Ð ¤:¨i¼¿¹Ô#GÙ �Eœ3˜y›>Õ *áØ—‘ ¤s§|¡|£~Õ6à—‘  tÕ,r có$—|j|«}|€y|jry tj|}t |d« t |dd«}|� |« tj«t |d«y#t$rYywxYw#t$r/}t|t«r‚|j||d|«Yd}~Œdd}~wwxYw#t$r/}t|t«r‚|j||d|«Yd}~ŒŠd}~wwxYw#t |d«wxYw)NrfÚtearDownModuleri) rurXrxryrzrrrjr&rarkrr{)rrCrtr}rŒrps r r^zTestSuite._handleModuleTearDownús+€Ø×2Ñ2°6Ó:ˆØ Ð !Ø Ø × $Ò $Ø ð Ü—[‘[ Ñ0ˆFô ˜ Ô/ð 6Ü$ VÐ-=¸tÓDˆNØÐ)ðLÙ"Ô$ð HÜ×%Ñ%Ô'ô ˜FÐ$4Õ 5øô1ò Ù ð ûô!òLÜ! &¬,Ô7ØØ×;Ñ;¸FÀAØÂ9DÂ>CÃDà C>Ã%C9Ã4DÃ9C>Ã>DÄDcóš—t|dd«}|j}||k(s|€yt|dd«ryt|dd«ryt|dd«ryt|dd«}t|dd«}|€|€yt|d« |� |«|�[|«|jD]E} t |t «r| d ‚t j|«}|j|| d d|| ¬ «ŒGt|d «y#t$rD}t |t «r‚t j|«}|j||d|«Yd}~Œ²d}~wwxYw#t|d «wxYw) Nr]rWFrXrcÚ tearDownClassrerfrrgri) rr!rrjr&rarr rkrl) rr0rCrmrnrŽrerprqrrs r rZz TestSuite._tearDownPreviousClassst€Ü Ð(<¸dÓCˆ Ø—~‘~ˆ Ø ˜=Ò (¨MÐ,AØ Ü �=Ð"5°uÔ =Ø Ü �6Ð/°Ô 7Ø Ü �=Ð"5°uÔ =Ø ä  ¨ÀÓEˆ Ü! -Ð1BÀDÓIˆØ Ð  _Ð%<Ø ä˜ Ô/ð 6ØÐ(ðGÙ!”OðÐ*ÙÔ!Ø -× AÔ A�HÜ! &¬,Ô7Ø& q™kÐ)Ü $§ ¡ ¨mÓ <�IØ×;Ñ;¸FÀHÈQÁKØr¤sWðÙã åÝà € ò ô I�FôIôXi6� ôi6ôX$�6ô$òLô�6õr