DMA32 $ˆl–äY>”*e¶…6 Aq‘\*bÑ¿Á „ŸyïÀ¿Ã2¼§ VsúLÂRä\ãóh—dZddlZddlZddlZddlmZddlmZdZd„Z dZ d Z Gd „d e ¦«Z dS) zTest result objectéNé)Úutil©ÚwrapsTcó<‡—t‰¦«ˆfd„¦«}|S)Ncóf•—t|dd¦«r| ¦«‰|g|¢Ri|¤ŽS)NÚfailfastF)ÚgetattrÚstop)ÚselfÚargsÚkwÚmethods €ú.inner sDø€å �4˜ UÑ +Ô +ð Ø �IŠI‰KŒKˆK؈v�dÐ(˜TÐ(Ð(Ð( RÐ(Ð(Ð(ór)rrs` rr r s3ø€Ý ˆ6�]„]ð)ð)ð)ð)ñ„]ð)ð €Lrz Stdout: %sz Stderr: %scóÔ—eZdZdZdZdZdZdd„Zd„Zd„Z d„Z d„Z d „Z d „Z d „Zed „¦«Zed „¦«Zd„Zd„Zd„Zd„Zed„¦«Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZdS)Ú TestResultaÙHolder for test result information. Test results are automatically managed by the TestCase and TestSuite classes, and do not need to be explicitly manipulated by writers of tests. Each instance holds the total number of tests run, and collections of failures and errors that occurred among those test runs. The collections contain tuples of (testcase, exceptioninfo), where exceptioninfo is the formatted traceback of the error that occurred. NFcó—d|_g|_g|_d|_g|_g|_g|_d|_d|_d|_ d|_ d|_ tj |_tj|_d|_dS)NFr)r ÚfailuresÚerrorsÚtestsRunÚskippedÚexpectedFailuresÚunexpectedSuccessesÚ shouldStopÚbufferÚ tb_localsÚ_stdout_bufferÚ_stderr_bufferÚsysÚstdoutÚ_original_stdoutÚstderrÚ_original_stderrÚ _mirrorOutput)r ÚstreamÚ descriptionsÚ verbositys rÚ__init__zTestResult.__init__&s|€ØˆŒ ؈Œ ؈Œ ؈Œ ؈Œ Ø "ˆÔØ#%ˆÔ ؈ŒØˆŒ ؈ŒØ"ˆÔØ"ˆÔÝ #¤ ˆÔÝ #¤ ˆÔØ"ˆÔÐÐrcó—dS)z#Called by TestRunner after test runN©©r s rÚ printErrorszTestResult.printErrors7ó€€€rcó\—|xjdz c_d|_| ¦«dS)z-Called when the given test is about to be runrFN)rr&Ú _setupStdout©r Útests rÚ startTestzTestResult.startTest:s2€à ˆ Œ ˜Ñˆ Œ Ø"ˆÔØ ×ÒÑÔÐÐÐrcóÊ—|jr[|j€0tj¦«|_tj¦«|_|jt _|jt _dSdS)N)rr ÚioÚStringIOrr!r"r$r-s rr1zTestResult._setupStdout@sS€Ø Œ;ð -ØÔ"Ð*Ý&(¤k¡m¤m�Ô#Ý&(¤k¡m¤m�Ô#ØÔ,�CŒJØÔ,�CŒJˆJˆJð  -ð -rcó—dS)zpCalled once before any tests are executed. See startTest for a method called before each test. Nr,r-s rÚ startTestRunzTestResult.startTestRunHr/rcó<—| ¦«d|_dS)z'Called when the given test has been runFN)Ú_restoreStdoutr&r2s rÚstopTestzTestResult.stopTestNs"€à ×ÒÑÔÐØ"ˆÔÐÐrcó¨—|j�rI|jr¸tj ¦«}tj ¦«}|r<| d¦«s|dz }|j t|z¦«|r<| d¦«s|dz }|j  t|z¦«