B  ho_#@s<dZddlZddlZddlZddlZddlZddlZddlmm Z ddl m Z Gdddej Z GdddZdd d Zdd d Zed kr8GdddejZeZeeeeZeeddejDZeejZeeZ e!de"e!dddx(e #e $D]Z%e!e%&ddqWe!dS)z=Test runner and result class for the regression test suite. N)datetimecseZdZdZdZfddZeddZfddZd"d d Z d d Z eddZ fddZ fddZ fddZfddZfddZfddZddZddZd d!ZZS)#RegressionTestResultzG====================================================================== zG---------------------------------------------------------------------- cs\tj||ddd|_td|_|jdt dd|_ d|_ g|_ t ||_dS)Nr)stream descriptions verbosityTZ testsuitestart )super__init__bufferETZElement_RegressionTestResult__suitesetrZutcnowZ isoformat_RegressionTestResult__e!_RegressionTestResult__start_timeZ_RegressionTestResult__resultsbool_RegressionTestResult__verbose)selfrrr) __class__ __qualname__r^r_r classmethodr+rr5rKrIrJrOrRrTrWrYr]rZra __classcell__rr)rrrs"         rc@seZdZdddZddZdS)QuietRegressionTestRunnerFcCst|dd|_||j_dS)Nr)rr(r )rrr rrrr sz"QuietRegressionTestRunner.__init__cCs||j|jS)N)r()rrrrrr's zQuietRegressionTestRunner.runN)F)r?r>rbr r'rrrrres reFcCs&|rtjtjt||dStjt|dS)N)Z resultclassr r)r ) functoolspartialunittestZTextTestRunnerrre)rr rrrget_test_runner_classs ricCst|||S)N)ri)rrZcapture_outputrrrget_test_runnersrj__main__c@s,eZdZddZddZddZddZd S) TestTestscCsdS)Nr)rrrr test_passszTestTests.test_passcCstddS)Ng?)r Zsleep)rrrrtest_pass_slowszTestTests.test_pass_slowcCs*tdtjdtdtjd|ddS)Nr1)filer2zfailure message)printsysr1r2Zfail)rrrr test_failszTestTests.test_failcCs(tdtjdtdtjdtddS)Nr1)ror2z error message)rprqr1r2 RuntimeError)rrrr test_errorszTestTests.test_errorN)r?r>rbrmrnrrrtrrrrrlsrlccs|]}|dkVqdS)z-vNr).0arrr srwzOutput:zXML: r:)end)F)F)'__doc__rfiorqr r@rhZxml.etree.ElementTreeZetreeZ ElementTreer rZTextTestResultrrerirjr?ZTestCaserlZ TestSuiteZsuiteZaddTestZ makeSuiteStringIOrsumargvZ runner_clsr1Zrunnerr'r(rpr,Z tostringlistrasdecoderrrrs4