a DOgs@sjddlZddlZddlZddlmZddlmZdZGdddeZ Gdd d ej Z Gd d d eZ dS) N)result)registerResultTc@s&eZdZddZddZdddZdS) _WritelnDecoratorcCs ||_dSN)stream)selfrr '/usr/lib64/python3.9/unittest/runner.py__init__sz_WritelnDecorator.__init__cCs|dvrt|t|j|S)N)r __getstate__)AttributeErrorgetattrr)rattrr r r __getattr__sz_WritelnDecorator.__getattr__NcCs|r|||ddSN )write)rargr r r writelns z_WritelnDecorator.writeln)N)__name__ __module__ __qualname__r rrr r r r r srcseZdZdZdZfddZddZfddZfd d Zfd d Z fd dZ fddZ fddZ fddZ ddZddZZS)TextTestResultzF======================================================================zF----------------------------------------------------------------------cs8tt||||||_|dk|_|dk|_||_dS)Nr)superrr rshowAlldots descriptions)rrr verbosity __class__r r r %s   zTextTestResult.__init__cCs0|}|jr$|r$dt||fSt|SdSr)ZshortDescriptionrjoinstr)rtestZdoc_first_liner r r getDescription,s zTextTestResult.getDescriptioncsBtt|||jr>|j|||jd|jdS)Nz ... )rr startTestrrrr$flushrr#rr r r%3s  zTextTestResult.startTestcsNtt|||jr.|jd|jn|jrJ|jd|jdS)Nok.) rr addSuccessrrrr&rrr'rr r r*:s   zTextTestResult.addSuccesscsPtt||||jr0|jd|jn|jrL|jd|jdS)NERRORE) rraddErrorrrrr&rrrr#errrr r r-Cs   zTextTestResult.addErrorcsPtt||||jr0|jd|jn|jrL|jd|jdS)NFAILF) rr addFailurerrrr&rrr.rr r r2Ls   zTextTestResult.addFailurecsVtt||||jr6|jd||jn|jrR|j d|jdS)Nz skipped {0!r}s) rraddSkiprrrformatr&rr)rr#reasonrr r r4Us  zTextTestResult.addSkipcsPtt||||jr0|jd|jn|jrL|jd|jdS)Nzexpected failurex) rraddExpectedFailurerrrr&rrr.rr r r8^s   z!TextTestResult.addExpectedFailurecsNtt|||jr.|jd|jn|jrJ|jd|jdS)Nzunexpected successu) rraddUnexpectedSuccessrrrr&rrr'rr r r:gs   z#TextTestResult.addUnexpectedSuccesscCs@|js |jr |j|j|d|j|d|jdS)Nr+r0)rrrrr&printErrorListerrorsfailuresrr r r printErrorsps    zTextTestResult.printErrorscCsb|D]X\}}|j|j|jd|||f|j|j|jd||jqdS)Nz%s: %sz%s)rr separator1r$ separator2r&)rflavourr<r#r/r r r r;ws  zTextTestResult.printErrorList)rrrr@rAr r$r%r*r-r2r4r8r:r?r; __classcell__r r rr rs   rc@s0eZdZeZd ddddZdd Zd d ZdS) TextTestRunnerNTrF) tb_localsc CsN|durtj}t||_||_||_||_||_||_||_ |durJ||_ dSr) sysstderrrrrrfailfastbufferrEwarnings resultclass) rrrrrHrIrKrJrEr r r r s zTextTestRunner.__init__cCs||j|j|jSr)rKrrrr>r r r _makeResultszTextTestRunner._makeResultc Csl|}t||j|_|j|_|j|_t|jr^t|j|jdvr^tjdt ddt }t |dd}|dur|z&||Wt |dd}|dur|nt |dd}|dur|0t }Wdn1s0Y||}| t|dr|j|j|j}|jd||d kr4d p6d |f|jd } } } ztt|j|j|jf} WntyYn 0| \} } } g} |s|jd t|jt|j}}|r| d||r| d|n |jd| r | d| | r| d| | r2| d| | rR|jdd| fn |jd|j|S)N)defaultalwaysmodulezPlease use assert\w+ instead.)categorymessage startTestRun stopTestRunrAzRan %d test%s in %.3fsrr3rZFAILEDz failures=%dz errors=%dZOKz skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, r) rLrrHrIrErJcatch_warnings simplefilterfilterwarningsDeprecationWarningtime perf_counterrr?hasattrrrrAZtestsRunmaplenZexpectedFailuresunexpectedSuccessesskippedr Z wasSuccessfulrr=r<appendr!r&)rr#rZ startTimerRrSZstopTimeZ timeTakenrunZ expectedFailsr^r_resultsZinfosZfailedZerroredr r r ras       &          zTextTestRunner.run)NTrFFNN)rrrrrKr rLrar r r r rDs rD) rFrYrJrTrZsignalsrZ __unittestobjectrZ TestResultrrDr r r r s  c