3 \ @s6dZddlZddlZddlZddlZddlZddlZddljj Z ddl m Z Gdddej Z GdddZdd d Zdd d Zed kr2GdddejZejZejejeejZeeddejDZeejZejeZ e!dej"e!dddx(e j#e j$D]Z%e!e%j&ddqWe!dS)z=Test runner and result class for the regression test suite. N)datetimecseZdZdddZdddZfddZeddZfd d Zd$d d Z ddZ eddZ fddZ fddZ fddZfddZfddZfddZddZd d!Zd"d#ZZS)%RegressionTestResult=F -cs\tj||ddd|_tjd|_|jjdtjj 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)selfrr r ) __class__//usr/lib64/python3.6/test/support/testresult.pyrs zRegressionTestResult.__init__cCsLy |j}Wntk r"t|SXy|Stk rBt|SXt|S)N)idAttributeErrorstr TypeErrorrepr)clstestZtest_idrrrZ__getIds   zRegressionTestResult.__getIdcsVtj|tj|jd|_}tj|_|j rR|j j |j |d|j j dS)NZtestcasez ... )r startTestr SubElementrrtime perf_counterrrrwritegetDescriptionflush)rr!e)rrrr"+s   zRegressionTestResult.startTestFc KsP|j}d|_|dkrdS|jd|jd|j||jd|jdd|jd|jdd|jrz|jdtj|jd|r|jdk r|jjj }|t j |d_ |j dk r|j jj }|t j |d _ x|jD]t\}}| s| rqt j ||} t|d r>xD|jD],\} } | r,| j| t| n t| | _ q Wqt|| _ qWdS) NnameZstatusrunresultZ completedr$z0.6fz system-outz system-erritems)rrpop_RegressionTestResult__getIdrr$r%Z_stdout_buffergetvaluerstriprr#textZ_stderr_bufferr-hasattrr) rr!Zcaptureargsr)stdoutstderrkvZe2Zk2Zv2rrr _add_result3s4     z RegressionTestResult._add_resultcCs|jr|jj|ddS)Nr)rrr&)rcZwordrrrZ__writeSszRegressionTestResult.__writecCslt|tr0|jdkr|j}q8|jd|j}nt|}tj||d}tj|||}|dj|dj|dS)Nbuiltins.)typemessager=) isinstancer> __module____name__r tracebackformat_exceptionjoin)r Zerr_typeZ err_valueZerr_tbtypenamemsgtbrrrZ__makeErrorDictWs  z$RegressionTestResult.__makeErrorDictcs4|j|d|j|dtj|||jdddS)NT)errorEERROR)r9$_RegressionTestResult__makeErrorDictr addError_RegressionTestResult__write)rr!err)rrrrMjszRegressionTestResult.addErrorcs4|j|d|j|dtj|||jdddS)NT)outputxzexpected failure)r9rLr addExpectedFailurerN)rr!rO)rrrrRosz'RegressionTestResult.addExpectedFailurecs4|j|d|j|dtj|||jdddS)NT)ZfailureFFAIL)r9rLr addFailurerN)rr!rO)rrrrUtszRegressionTestResult.addFailurecs2|j||dtj|||jdd|dS)N)ZskippedSzskipped )r9r addSkiprN)rr!reason)rrrrWyszRegressionTestResult.addSkipcs&|j|tj||jdddS)Nr<ok)r9r addSuccessrN)rr!)rrrrZ~s  zRegressionTestResult.addSuccesscs*|j|ddtj||jdddS)NZUNEXPECTED_SUCCESS)Zoutcomeuzunexpected success)r9r addUnexpectedSuccessrN)rr!)rrrr\s z)RegressionTestResult.addUnexpectedSuccesscCs2|jr|jjd|jd|j|jd|jdS)NrrKrT)rrr&printErrorListerrorsfailures)rrrr printErrorss z RegressionTestResult.printErrorscCs`xZ|D]R\}}|jj|j|jj|d|j|d|jj|j|jjd|qWdS)Nz: rz%s )rr& separator1r' separator2)rZflavorr^r!rOrrrr]s z#RegressionTestResult.printErrorListcCsH|j}|jdt|j|jdtt|j|jdtt|j|S)NZtestsr^r_)rrrZtestsRunlenr^r_)rr)rrrget_xml_elements z$RegressionTestResult.get_xml_element)F)rBrA __qualname__rarbr classmethodr/r"r9rNrLrMrRrUrWrZr\r`r]rd __classcell__rr)rrrs"           rc@seZdZdddZddZdS)QuietRegressionTestRunnerFcCst|dd|_||j_dS)Nr)rr,r)rrrrrrrsz"QuietRegressionTestRunner.__init__cCs||j|jS)N)r,)rr!rrrr+s zQuietRegressionTestRunner.runN)F)rBrArerr+rrrrrhs rhFcCs&|rtjtjt||dStjt|dS)N)Z resultclassrr )r) functoolspartialunittestZTextTestRunnerrrh)r rrrrget_test_runner_classs rlcCst|||S)N)rl)rr Zcapture_outputrrrget_test_runnersrm__main__c@s,eZdZddZddZddZddZd S) TestTestscCsdS)Nr)rrrr test_passszTestTests.test_passcCstjddS)Ng?)r$Zsleep)rrrrtest_pass_slowszTestTests.test_pass_slowcCs*tdtjdtdtjd|jddS)Nr5)filer6zfailure message)printsysr5r6Zfail)rrrr test_failszTestTests.test_failcCs(tdtjdtdtjdtddS)Nr5)rrr6z error message)rsrtr5r6 RuntimeError)rrrr test_errorszTestTests.test_errorN)rBrArerprqrurwrrrrrosroccs|]}|dkVqdS)z-vNr).0arrr srzzOutput:zXML: r=)end)F)F)'__doc__riiortr$rCrkZxml.etree.ElementTreeZetreeZ ElementTreerrZTextTestResultrrhrlrmrBZTestCaseroZ TestSuiteZsuiteZaddTestZ makeSuiteStringIOrsumargvZ runner_clsr5Zrunnerr+r,rsr0Z tostringlistrdsdecoderrrrs4