ó K9•Qc@s«dZddlZyddlmZWn!ek rIddlmZnXddlmZddlm Z m Z ej dƒZ d„Zdefd „ƒYZd „Z dS( sì Test Result ----------- Provides a TextTestResult that extends unittest's _TextTestResult to provide support for error classes (such as the builtin skip and deprecated classes), and hooks for plugins to take over or extend reporting. iÿÿÿÿN(t_TextTestResult(tConfig(tisclasstlns nose.resultcCs*yt|ƒSWndt|ƒjSXdS(Ns(tstrttypet__name__(texc((s//sys/lib/python2.7/site-packages/nose/result.pyt_exception_detailstTextTestResultcBsteZdZd d d„Zd„Zd„Zd„Zd d„Zd„Z d„Z d„Z d „Z d d „Z RS( sÄText test result that extends unittest's default test result support for a configurable set of errorClasses (eg, Skip, Deprecated, TODO) that extend the errors/failures/success triad. cCsY|dkri}n||_|dkr6tƒ}n||_tj||||ƒdS(N(tNonet errorClassesRtconfigRt__init__(tselftstreamt descriptionst verbosityR R ((s//sys/lib/python2.7/site-packages/nose/result.pyR $s      cCshddlm}||jkrd|j|\}}}|j||fƒ|j|||dfƒndS(Niÿÿÿÿ(tSkipTest(tnose.plugins.skipRR tappendt printLabelR (RttesttreasonRtstoragetlabeltisfail((s//sys/lib/python2.7/site-packages/nose/result.pytaddSkip.s c Csõ|\}}}y|j||ƒ}Wn tk rG|j|ƒ}nXxz|jjƒD]i\}\}} } t|ƒrXt||ƒrX| ršt|_n|j||fƒ|j | |ƒdSqXW|j j||fƒt|_|j dƒdS(s»Overrides normal addError to add support for errorClasses. If the exception is a registered class, the error will be added to the list for that class, not errors. NtERROR( t_exc_info_to_stringt TypeErrorR titemsRt issubclasstFalsetpassedRRterrors( RRterrtectevttbtexc_infotclsRRR((s//sys/lib/python2.7/site-packages/nose/result.pytaddError6s %  cCs-|jr|jƒpt|ƒSt|ƒSdS(N(RtshortDescriptionR(RR((s//sys/lib/python2.7/site-packages/nose/result.pytgetDescriptionPs cCsœt|ddƒ}|dk r˜|jrx|g}|r_t|dƒ}|r_|j|ƒq_n|jdj|ƒƒq˜|jr˜|j|d ƒq˜ndS(NRis: ( tgetattrR tshowAllRRtwritelntjointdotstwrite(RRR$Rtmessagetdetail((s//sys/lib/python2.7/site-packages/nose/result.pyRVs    cCs‚tj|ƒxF|jjƒD]5}|j|\}}}|r|j||ƒqqWt|dƒr~|jjj|j ƒndS(s<Overrides to print all errorClasses errors as well. R N( Rt printErrorsR tkeystprintErrorListthasattrR tpluginstreportR(RR)RRR((s//sys/lib/python2.7/site-packages/nose/result.pyR5ds c Cs³|jj}|jj}t||ƒ}|j}|dkrCdpFd}||jƒ|d|||fƒ|ƒi}|jjƒ} xF| D]>} |j| \} } } t| ƒ}|sÄqn|||              * cCs`|js|jrtSxC|jjƒD]2}|j|\}}}|sNq&n|r&tSq&WtS(s”Overrides to check that there are no errors in errorClasses lists that are marked as errors and should cause a run to fail. (R#R=R!R R6tTrue(RR)RRR((s//sys/lib/python2.7/site-packages/nose/result.pyRE™scCs‹y|j||ƒ}Wn tk r8|j|ƒ}nX|jj||fƒ|jrk|jjdƒn|jr‡|jjdƒndS(NRtE(RRR#RR.RR2R1(RRR$R(((s//sys/lib/python2.7/site-packages/nose/result.pyt _addError¨s   cCsmddlm}t|d|ƒr1t|dƒSytj|||ƒSWntk rhtj||ƒSXdS(Niÿÿÿÿ(Rii(RRR RRRR(RR$RR((s//sys/lib/python2.7/site-packages/nose/result.pyR´s N(Rt __module__t__doc__R R RR*R,RR5RORERRR(((s//sys/lib/python2.7/site-packages/nose/result.pyR s     )  cOs*ddlm}|dtƒt||ŽS(Niÿÿÿÿ(twarns‚ln() has moved to nose.util from nose.result and will be removed from nose.result in a future release. Please update your imports (twarningsRUtDeprecationWarningt_ln(targtkwRU((s//sys/lib/python2.7/site-packages/nose/result.pyRÁs(RTtloggingtunittest.runnerRt ImportErrortunittestt nose.configRt nose.utilRRRXt getLoggertlogRR (((s//sys/lib/python2.7/site-packages/nose/result.pyt s   ¢