�`^c@s�dZddlZddlZddlmZddlmZeZde fd��YZ
dejfd ��YZd
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%/sys/lib/python2.7/unittest/runner.pyt__init__scCs+|dkrt|��nt|j|�S(NRt__getstate__(sstreams__getstate__(tAttributeErrortgetattrR(Rtattr((s%/sys/lib/python2.7/unittest/runner.pyt__getattr__scCs'|r|j|�n|jd�dS(Ns
(twrite(Rtarg((s%/sys/lib/python2.7/unittest/runner.pytwritelnsN(t__name__t
__module__t__doc__RR
tNoneR
(((s%/sys/lib/python2.7/unittest/runner.pyRs tTextTestResultcBs�eZdZddZddZd�Zd�Zd�Zd�Zd�Z d �Z
d
�Zd�Zd�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(tsuperRRRtshowAlltdotstdescriptions(RRRt verbosity((s%/sys/lib/python2.7/unittest/runner.pyR$s
cCsB|j�}|jr4|r4djt|�|f�St|�SdS(Ns
(tshortDescriptionRtjointstr(Rttesttdoc_first_line((s%/sys/lib/python2.7/unittest/runner.pytgetDescription+scCs\tt|�j|�|jrX|jj|j|��|jjd�|jj�ndS(Ns ... (RRt startTestRRRRtflush(RR((s%/sys/lib/python2.7/unittest/runner.pyR 2s
cCs_tt|�j|�|jr2|jjd�n)|jr[|jjd�|jj�ndS(Ntokt.( RRt
addSuccessRRR
RRR!(RR((s%/sys/lib/python2.7/unittest/runner.pyR$9s cCsbtt|�j||�|jr5|jjd�n)|jr^|jjd�|jj�ndS(NtERRORtE( RRtaddErrorRRR
RRR!(RRterr((s%/sys/lib/python2.7/unittest/runner.pyR'As cCsbtt|�j||�|jr5|jjd�n)|jr^|jjd�|jj�ndS(NtFAILtF( RRt
addFailureRRR
RRR!(RRR(((s%/sys/lib/python2.7/unittest/runner.pyR+Is cCsktt|�j||�|jr>|jjdj|��n)|jrg|jjd�|jj �ndS(Ns
skipped {0!r}ts(
RRtaddSkipRRR
tformatRRR!(RRtreason((s%/sys/lib/python2.7/unittest/runner.pyR-Qs cCsbtt|�j||�|jr5|jjd�n)|jr^|jjd�|jj�ndS(Nsexpected failuretx( RRtaddExpectedFailureRRR
RRR!(RRR(((s%/sys/lib/python2.7/unittest/runner.pyR1Ys cCs_tt|�j|�|jr2|jjd�n)|jr[|jjd�|jj�ndS(Nsunexpected successtu( RRtaddUnexpectedSuccessRRR
RRR!(RR((s%/sys/lib/python2.7/unittest/runner.pyR3as cCsL|js|jr"|jj�n|jd|j�|jd|j�dS(NR%R)(RRRR
tprintErrorListterrorstfailures(R((s%/sys/lib/python2.7/unittest/runner.pytprintErrorsiscCsxxq|D]i\}}|jj|j�|jjd||j|�f�|jj|j�|jjd|�qWdS(Ns%s: %ss%s(RR
t
separator1Rt
separator2(RtflavourR5RR(((s%/sys/lib/python2.7/unittest/runner.pyR4os
#(RRRR8R9RRR R$R'R+R-R1R3R7R4(((s%/sys/lib/python2.7/unittest/runner.pyRs
tTextTestRunnercBsDeZdZeZejedeedd�Z
d�Zd�ZRS(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(RRRRtfailfasttbufferRtresultclass(RRRRR<R=R>((s%/sys/lib/python2.7/unittest/runner.pyRs cCs|j|j|j|j�S(N(R>RRR(R((s%/sys/lib/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||dkrdpd|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.tstartTestRunNtstopTestRunR9sRan %d test%s in %.3fsiR,titFAILEDsfailures=%ds errors=%dtOKs
skipped=%dsexpected failures=%dsunexpected successes=%ds (%s)s, s
(R?RR<R=ttimeRRR7thasattrRR
R9ttestsRuntmaptlentexpectedFailurestunexpectedSuccessestskippedRt
wasSuccessfulRR6R5tappendR(RRRt startTimeR@RAtstopTimet timeTakentrunt
expectedFailsRKRLtresultstinfostfailedterrored((s%/sys/lib/python2.7/unittest/runner.pyRR�sb
#
!#N(
RRRRR>tsyststderrtTruetFalseRRR?RR(((s%/sys/lib/python2.7/unittest/runner.pyR;ws (RRXRERBRtsignalsRRZt
__unittesttobjectRt
TestResultRR;(((s%/sys/lib/python2.7/unittest/runner.pyt<module>s[
|