ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ (SSc@sdZddlZyddlmZWn!ek rIddlmZnXddlmZddlm Z m Z ej dZ dZdefd 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. iN(t_TextTestResult(tConfig(tisclasstlns nose.resultcCs*yt|SWndt|jSXdS(Ns(tstrttypet__name__(texc((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyt_exception_detailstTextTestResultcBsteZdZd d dZdZdZdZd dZdZ dZ dZ d Z d d Z RS( sText 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</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyR $s      cCshddlm}||jkrd|j|\}}}|j||f|j|||dfndS(Ni(tSkipTest(tnose.plugins.skipRR tappendt printLabelR (RttesttreasonRtstoragetlabeltisfail((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pytaddSkip.s c Cs|\}}}y|j||}Wn tk rG|j|}nXxz|jjD]i\}\}} } t|rXt||rX| rt|_n|j||f|j | |dSqXW|j j||ft|_|j ddS(sOverrides 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</opt/alt/python27/lib/python2.7/site-packages/nose/result.pytaddError6s %  cCs-|jr|jpt|St|SdS(N(RtshortDescriptionR(RR((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pytgetDescriptionPs cCst|dd}|dk r|jrx|g}|r_t|d}|r_|j|q_n|jdj|q|jr|j|d qndS(NRis: ( tgetattrR tshowAllRRtwritelntjointdotstwrite(RRR$Rtmessagetdetail((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyRVs    cCstj|xF|jjD]5}|j|\}}}|r|j||qqWt|dr~|jjj|j ndS(s<Overrides to print all errorClasses errors as well. R N( Rt printErrorsR tkeystprintErrorListthasattrR tpluginstreportR(RR)RRR((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyR5ds cCs|jj}|jj}t||}|j}|dkrCdpFd}||j|d|||f|i}|jj} xF| D]>} |j| \} } } t| }|sqn|||              * cCs`|js|jrtSxC|jjD]2}|j|\}}}|sNq&n|r&tSq&WtS(sOverrides 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</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyREscCsy|j||}Wn tk r8|j|}nX|jj||f|jrk|jjdn|jr|jjdndS(NRtE(RRR#RR.RR2R1(RRR$R(((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyt _addErrors   cCs}ddlm}t|drAt|d|rAt|dSytj|||SWntk rxtj||SXdS(Ni(Rii(RRRR RRRR(RR$RR((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyRs# N(Rt __module__t__doc__R R RR*R,RR5RORERRR(((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyR s     )  cOs*ddlm}|dtt||S(Ni(twarnsln() 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</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyRs(RTtloggingtunittest.runnerRt ImportErrortunittestt nose.configRt nose.utilRRRXt getLoggertlogRR (((s</opt/alt/python27/lib/python2.7/site-packages/nose/result.pyt s