j f<@sdZddlZddlZddlZddlmZddlmZdZGddde Z Gd d d ej Z Gd d d e Z dS) z Running testsN)result)registerResultTc@s=eZdZdZddZddZdddZdS) _WritelnDecoratorz@Used to decorate file-like objects with a handy 'writeln' methodcCs ||_dS)N)stream)selfrr4/opt/alt/python34/lib64/python3.4/unittest/runner.py__init__sz_WritelnDecorator.__init__cCs+|dkrt|nt|j|S)Nr __getstate__)zstreamz __getstate__)AttributeErrorgetattrr)rattrrrr __getattr__s z_WritelnDecorator.__getattr__NcCs'|r|j|n|jddS)N )write)rargrrr writelnsz_WritelnDecorator.writeln)__name__ __module__ __qualname____doc__r rrrrrr r s   rcseZdZdZddZddZfddZddZfd d Zfd d Z fd dZ fddZ fddZ fddZ fddZddZddZS)TextTestResultzhA test result class that can print formatted text results to a stream. Used by TextTestRunner. =F-csPtt|j|||||_|dk|_|dk|_||_dS)Nr)superrr rshowAlldots descriptions)rrr verbosity) __class__rr r %s  zTextTestResult.__init__cCsB|j}|jr4|r4djt||fSt|SdS)Nr)ZshortDescriptionrjoinstr)rtestZdoc_first_linerrr getDescription,s zTextTestResult.getDescriptioncs\tt|j||jrX|jj|j||jjd|jjndS)Nz ... )rr startTestrrrr%flush)rr$)r!rr r&3s  zTextTestResult.startTestcs_tt|j||jr2|jjdn)|jr[|jjd|jjndS)Nok.) rr addSuccessrrrrrr')rr$)r!rr r*:s   zTextTestResult.addSuccesscsbtt|j|||jr5|jjdn)|jr^|jjd|jjndS)NERRORE) rraddErrorrrrrrr')rr$err)r!rr r-Bs   zTextTestResult.addErrorcsbtt|j|||jr5|jjdn)|jr^|jjd|jjndS)NFAILF) rr addFailurerrrrrr')rr$r.)r!rr r1Js   zTextTestResult.addFailurecsktt|j|||jr>|jjdj|n)|jrg|jjd|jj ndS)Nz skipped {0!r}s) rraddSkiprrrformatrrr')rr$reason)r!rr r3Rs   zTextTestResult.addSkipcsbtt|j|||jr5|jjdn)|jr^|jjd|jjndS)Nzexpected failurex) rraddExpectedFailurerrrrrr')rr$r.)r!rr r7Zs   z!TextTestResult.addExpectedFailurecs_tt|j||jr2|jjdn)|jr[|jjd|jjndS)Nzunexpected successu) rraddUnexpectedSuccessrrrrrr')rr$)r!rr r9bs   z#TextTestResult.addUnexpectedSuccesscCsL|js|jr"|jjn|jd|j|jd|jdS)Nr+r/)rrrrprintErrorListerrorsfailures)rrrr printErrorsjszTextTestResult.printErrorscCsxxq|D]i\}}|jj|j|jjd||j|f|jj|j|jjd|qWdS)Nz%s: %sz%s)rr separator1r% separator2)rZflavourr;r$r.rrr r:ps #zTextTestResult.printErrorList)rrrrr>r?r r%r&r*r-r1r3r7r9r=r:rr)r!r rs     rc @sUeZdZdZeZdddddddddZdd Zd d ZdS) TextTestRunnerzA test runner class that displays results in textual form. It prints out the names of tests as they are run, errors as they occur, and a summary of the results at the end of the test run. NTrFcCsp|dkrtj}nt||_||_||_||_||_||_|dk rl||_ ndS)N) sysstderrrrrr failfastbufferwarnings resultclass)rrrr rCrDrFrErrr r s        zTextTestRunner.__init__cCs|j|j|j|jS)N)rFrrr )rrrr _makeResultszTextTestRunner._makeResultcCs|j}t||j|_|j|_tj|jrtj|j|jdkrtjddtddqnt j }t |dd}|dk r|nz||Wdt |d d}|dk r|nXt j }WdQX||}|j t |d r;|j j|jn|j}|j jd ||d kred phd|f|j jd} } } y%tt|j|j|jf} Wntk rYnX| \} } } g} |jsO|j jdt|jt|j}}|r2| jd|n|r_| jd|q_n|j jd| ry| jd| n| r| jd| n| r| jd| n| r|j jddj| fn|j jd|S)z&Run the given test case or test suite.defaultalwaysmodulecategorymessagezPlease use assert\w+ instead. startTestRunN stopTestRunr?zRan %d test%s in %.3fsrr2rZFAILEDz failures=%dz errors=%dZOKz skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, r)zdefaultzalways)rGrrCrDrEcatch_warnings simplefilterfilterwarningsDeprecationWarningtimer r=hasattrrrr?ZtestsRunmaplenZexpectedFailuresunexpectedSuccessesskippedr Z wasSuccessfulrr<r;appendr")rr$rZ startTimerMrNZstopTimeZ timeTakenrunZ expectedFailsrXrYZresultsZinfosZfailedZerroredrrr r[sp                 #    #zTextTestRunner.run) rrrrrrFr rGr[rrrr r@xs   r@)rrArTrErOrZsignalsrZ __unittestobjectrZ TestResultrr@rrrr s   [