ó JÑÕfc@sdZddlZddlZddlmZddlmZeZde fd„ƒYZ dej fd „ƒYZ d e fd „ƒYZ dS( s Running testsiÿÿÿÿNi(tresult(tregisterResultt_WritelnDecoratorcBs,eZdZd„Zd„Zdd„ZRS(s@Used to decorate file-like objects with a handy 'writeln' methodcCs ||_dS(N(tstream(tselfR((s'/usr/lib64/python2.7/unittest/runner.pyt__init__scCs+|dkrt|ƒ‚nt|j|ƒS(NRt __getstate__(sstreams __getstate__(tAttributeErrortgetattrR(Rtattr((s'/usr/lib64/python2.7/unittest/runner.pyt __getattr__s cCs'|r|j|ƒn|jdƒdS(Ns (twrite(Rtarg((s'/usr/lib64/python2.7/unittest/runner.pytwritelnsN(t__name__t __module__t__doc__RR tNoneR (((s'/usr/lib64/python2.7/unittest/runner.pyR s  tTextTestResultcBs…eZdZddZddZd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„ZRS(shA test result class that can print formatted text results to a stream. Used by TextTestRunner. t=iFt-cCsPtt|ƒj|||ƒ||_|dk|_|dk|_||_dS(Ni(tsuperRRRtshowAlltdotst descriptions(RRRt verbosity((s'/usr/lib64/python2.7/unittest/runner.pyR$s  cCsB|jƒ}|jr4|r4djt|ƒ|fƒSt|ƒSdS(Ns (tshortDescriptionRtjointstr(Rttesttdoc_first_line((s'/usr/lib64/python2.7/unittest/runner.pytgetDescription+s cCs\tt|ƒj|ƒ|jrX|jj|j|ƒƒ|jjdƒ|jjƒndS(Ns ... (RRt startTestRRR Rtflush(RR((s'/usr/lib64/python2.7/unittest/runner.pyR 2s  cCs_tt|ƒj|ƒ|jr2|jjdƒn)|jr[|jjdƒ|jjƒndS(Ntokt.( RRt addSuccessRRR RR R!(RR((s'/usr/lib64/python2.7/unittest/runner.pyR$9s   cCsbtt|ƒj||ƒ|jr5|jjdƒn)|jr^|jjdƒ|jjƒndS(NtERRORtE( RRtaddErrorRRR RR R!(RRterr((s'/usr/lib64/python2.7/unittest/runner.pyR'As   cCsbtt|ƒj||ƒ|jr5|jjdƒn)|jr^|jjdƒ|jjƒndS(NtFAILtF( RRt addFailureRRR RR R!(RRR(((s'/usr/lib64/python2.7/unittest/runner.pyR+Is   cCsktt|ƒj||ƒ|jr>|jjdj|ƒƒn)|jrg|jjdƒ|jj ƒndS(Ns skipped {0!r}ts( RRtaddSkipRRR tformatRR R!(RRtreason((s'/usr/lib64/python2.7/unittest/runner.pyR-Qs   cCsbtt|ƒj||ƒ|jr5|jjdƒn)|jr^|jjdƒ|jjƒndS(Nsexpected failuretx( RRtaddExpectedFailureRRR RR R!(RRR(((s'/usr/lib64/python2.7/unittest/runner.pyR1Ys   cCs_tt|ƒj|ƒ|jr2|jjdƒn)|jr[|jjdƒ|jjƒndS(Nsunexpected successtu( RRtaddUnexpectedSuccessRRR RR R!(RR((s'/usr/lib64/python2.7/unittest/runner.pyR3as   cCsL|js|jr"|jjƒn|jd|jƒ|jd|jƒdS(NR%R)(RRRR tprintErrorListterrorstfailures(R((s'/usr/lib64/python2.7/unittest/runner.pyt printErrorsiscCsxxq|D]i\}}|jj|jƒ|jjd||j|ƒfƒ|jj|jƒ|jjd|ƒqWdS(Ns%s: %ss%s(RR t separator1Rt separator2(RtflavourR5RR(((s'/usr/lib64/python2.7/unittest/runner.pyR4os #(RRRR8R9RRR R$R'R+R-R1R3R7R4(((s'/usr/lib64/python2.7/unittest/runner.pyRs            tTextTestRunnercBsDeZdZeZejedeedd„Z d„Z d„Z RS(sÉA 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. icCsOt|ƒ|_||_||_||_||_|dk rK||_ndS(N(RRRRtfailfasttbufferRt resultclass(RRRRR<R=R>((s'/usr/lib64/python2.7/unittest/runner.pyRs     cCs|j|j|j|jƒS(N(R>RRR(R((s'/usr/lib64/python2.7/unittest/runner.pyt _makeResult‰scCs‘|jƒ}t|ƒ|j|_|j|_tjƒ}t|ddƒ}|dk rb|ƒnz||ƒWdt|ddƒ}|dk r›|ƒnXtjƒ}||}|jƒt|dƒrá|j j |j ƒn|j }|j j d||dkr dpd|fƒ|j j ƒd } } } y%t t|j|j|jfƒ} Wntk rlnX| \} } } g} |jƒsö|j jd ƒt t|j|jfƒ\}}|rÙ| jd |ƒn|r| jd |ƒqn|j jd ƒ| r | jd| ƒn| r:| jd| ƒn| rT| jd| ƒn| r}|j j ddj| ƒfƒn|j jdƒ|S(s&Run the given test case or test suite.t startTestRunNt stopTestRunR9sRan %d test%s in %.3fsiR,titFAILEDs failures=%ds errors=%dtOKs skipped=%dsexpected failures=%dsunexpected successes=%ds (%s)s, s (R?RR<R=ttimeRRR7thasattrRR R9ttestsRuntmaptlentexpectedFailurestunexpectedSuccessestskippedRt wasSuccessfulR R6R5tappendR(RRRt startTimeR@RAtstopTimet timeTakentrunt expectedFailsRKRLtresultstinfostfailedterrored((s'/usr/lib64/python2.7/unittest/runner.pyRRŒsb              #    !#N( RRRRR>tsyststderrtTruetFalseRRR?RR(((s'/usr/lib64/python2.7/unittest/runner.pyR;ws   (RRXRERBRtsignalsRRZt __unittesttobjectRt TestResultRR;(((s'/usr/lib64/python2.7/unittest/runner.pyts  [