grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 \Gã@sjddlZddlZddlZddlmZddlmZdZGdd„deƒZ Gdd „d ej ƒZ Gd d „d eƒZ dS) éNé)Úresult)ÚregisterResultTc@s&eZdZdd„Zdd„Zddd„ZdS) Ú_WritelnDecoratorcCs ||_dS)N)Ústream)Úselfr©rú'/usr/lib64/python3.6/unittest/runner.pyÚ__init__sz_WritelnDecorator.__init__cCs|dkrt|ƒ‚t|j|ƒS)NrÚ __getstate__)rr )ÚAttributeErrorÚgetattrr)rÚattrrrr Ú __getattr__sz_WritelnDecorator.__getattr__NcCs|r|j|ƒ|jdƒdS)NÚ )Úwrite)rÚargrrr Úwritelns z_WritelnDecorator.writeln)N)Ú__name__Ú __module__Ú __qualname__r rrrrrr r srcs˜eZdZddZddZ‡fdd„Zdd„Z‡fdd „Z‡fd d „Z‡fd d „Z ‡fdd„Z ‡fdd„Z ‡fdd„Z ‡fdd„Z dd„Zdd„Z‡ZS)ÚTextTestResultú=éFú-cs8tt|ƒj|||ƒ||_|dk|_|dk|_||_dS)Nr)Úsuperrr rÚshowAllÚdotsÚ descriptions)rrrÚ verbosity)Ú __class__rr r %s   zTextTestResult.__init__cCs0|jƒ}|jr$|r$djt|ƒ|fƒSt|ƒSdS)Nr)ZshortDescriptionrÚjoinÚstr)rÚtestZdoc_first_linerrr ÚgetDescription,s zTextTestResult.getDescriptioncsBtt|ƒj|ƒ|jr>|jj|j|ƒƒ|jjdƒ|jjƒdS)Nz ... )rrÚ startTestrrrr$Úflush)rr#)r rr r%3s  zTextTestResult.startTestcsDtt|ƒj|ƒ|jr$|jjdƒn|jr@|jjdƒ|jjƒdS)NÚokÚ.) rrÚ addSuccessrrrrrr&)rr#)r rr r):s  zTextTestResult.addSuccesscsFtt|ƒj||ƒ|jr&|jjdƒn|jrB|jjdƒ|jjƒdS)NÚERRORÚE) rrÚaddErrorrrrrrr&)rr#Úerr)r rr r,Bs  zTextTestResult.addErrorcsFtt|ƒj||ƒ|jr&|jjdƒn|jrB|jjdƒ|jjƒdS)NÚFAILÚF) rrÚ addFailurerrrrrr&)rr#r-)r rr r0Js  zTextTestResult.addFailurecsLtt|ƒj||ƒ|jr,|jjdj|ƒƒn|jrH|jjdƒ|jj ƒdS)Nz skipped {0!r}Ús) rrÚaddSkiprrrÚformatrrr&)rr#Úreason)r rr r2Rs  zTextTestResult.addSkipcsFtt|ƒj||ƒ|jr&|jjdƒn|jrB|jjdƒ|jjƒdS)Nzexpected failureÚx) rrÚaddExpectedFailurerrrrrr&)rr#r-)r rr r6Zs  z!TextTestResult.addExpectedFailurecsDtt|ƒj|ƒ|jr$|jjdƒn|jr@|jjdƒ|jjƒdS)Nzunexpected successÚu) rrÚaddUnexpectedSuccessrrrrrr&)rr#)r rr r8bs  z#TextTestResult.addUnexpectedSuccesscCs6|js |jr|jjƒ|jd|jƒ|jd|jƒdS)Nr*r.)rrrrÚprintErrorListÚerrorsÚfailures)rrrr Ú printErrorsjs  zTextTestResult.printErrorscCs\xV|D]N\}}|jj|jƒ|jjd||j|ƒfƒ|jj|jƒ|jjd|ƒqWdS)Nz%s: %sz%s)rrÚ separator1r$Ú separator2)rZflavourr:r#r-rrr r9ps zTextTestResult.printErrorList)rrrr=r>r r$r%r)r,r0r2r6r8r<r9Ú __classcell__rr)r r rs        rc@s0eZdZeZd ddœdd„Zdd „Zd d „ZdS) ÚTextTestRunnerNTrF)Ú tb_localsc CsN|dkrtj}t|ƒ|_||_||_||_||_||_||_ |dk rJ||_ dS)N) ÚsysÚstderrrrrrÚfailfastÚbufferrAÚwarningsÚ resultclass) rrrrrDrErGrFrArrr r €s zTextTestRunner.__init__cCs|j|j|j|jƒS)N)rGrrr)rrrr Ú _makeResult”szTextTestRunner._makeResultcCs4|jƒ}t|ƒ|j|_|j|_|j|_tjƒ�†|jr^tj|jƒ|jdkr^tjdt dd�t j ƒ}t |ddƒ}|dk r€|ƒz ||ƒWdt |ddƒ}|dk r¨|ƒXt j ƒ}WdQRX||}|j ƒt |dƒrä|jj|jƒ|j}|jjd ||d k�rd �pd |fƒ|jjƒd } } } ytt|j|j|jfƒ} Wntk �rVYn X| \} } } g} |jƒ�s¼|jjdƒt|jƒt|jƒ}}|�r¦| jd|ƒ|�rÈ| jd|ƒn |jjdƒ| �rÜ| jd| ƒ| �rð| jd| ƒ| �r| jd| ƒ| �r$|jjddj| ƒfƒn |jjdƒ|S)NÚdefaultÚalwaysÚmodulezPlease use assert\w+ instead.)ÚcategoryÚmessageÚ startTestRunÚ stopTestRunr>zRan %d test%s in %.3fsrr1ÚrZFAILEDz failures=%dz errors=%dZOKz skipped=%dzexpected failures=%dzunexpected successes=%dz (%s)z, r)rIrJ)rHrrDrErArFÚcatch_warningsÚ simplefilterÚfilterwarningsÚDeprecationWarningÚtimer r<Úhasattrrrr>ZtestsRunÚmapÚlenZexpectedFailuresÚunexpectedSuccessesÚskippedr Z wasSuccessfulrr;r:Úappendr!)rr#rZ startTimerNrOZstopTimeZ timeTakenÚrunZ expectedFailsrYrZZresultsZinfosZfailedZerroredrrr r\—sr              zTextTestRunner.run)NTrFFNN)rrrrrGr rHr\rrrr r@xs r@) rBrUrFrPrZsignalsrZ __unittestÚobjectrZ TestResultrr@rrrr Ús  [