o Ehn@s2dZddlZddlZddlZddlZddlZddlZGdddejZGdddZ ddd Z dd d Z e d krddl mmZd e_GdddejZeZeeeeZe eddejDZeejZeeZ e!de"e!ddde#e $D] Z%e!e%&ddqe!dSdS)z=Test runner and result class for the regression test suite. NcseZdZdZfddZeddZfddZddd Zed d Z fd d Z fddZ fddZ fddZ fddZfddZddZZS)RegressionTestResultFcsxtj|||r dnddd|_|jr7ddlm}ddlm}||_|d|_ |j d| d d|_ d|_dS) Nr)stream descriptions verbosityT) ElementTree)datetime testsuitestart )super__init__bufferUSE_XML xml.etreerr_RegressionTestResult__ETElement_RegressionTestResult__suitesetutcnow isoformat_RegressionTestResult__e!_RegressionTestResult__start_time)selfrrrETr __class__./usr/lib/python3.10/test/support/testresult.pyr s      zRegressionTestResult.__init__cCsJz|j}Wn tyt|YSwz|WSty$t|YSwN)idAttributeErrorstr TypeErrorrepr)clstesttest_idrrr__getIds     zRegressionTestResult.__getIdcs6t||jr|j|jd|_}t|_ dS)Ntestcase) r startTestrr SubElementrrtime perf_counterr)rr&errrr*(s zRegressionTestResult.startTestc KsN|jsdS|j}d|_|durdS|j}|d|d|||d|dd|d|dd|jrE|dt|jd|rm|j durZ|j }|| |d_ |jdurm|j }|| |d _ |D]3\}} |ry| szqq| ||} t| d r| D]\} } | r| | t| qt| | _ qqqt| | _ qqdS) Nnamestatusrunresult completedr,z0.6fz system-outz system-erritems)rrrrpop_RegressionTestResult__getIdrr,r-_stdout_buffergetvaluerstripr+text_stderr_bufferr4hasattrr") rr&captureargsr.rstdoutstderrkve2k2v2rrr _add_result.s>      z RegressionTestResult._add_resultcCslt|tr|jdkr|j}n|jd|j}nt|}t||d}t|||}|d|d|dS)Nbuiltins.)typemessagerI) isinstancerJ __module____name__r$ tracebackformat_exceptionjoin)r%err_type err_valueerr_tbtypenamemsgtbrrr__makeErrorDictRs  z$RegressionTestResult.__makeErrorDictc(|j|d|j|dt||dS)NT)error)rF$_RegressionTestResult__makeErrorDictr addErrorrr&errrrrr\ezRegressionTestResult.addErrorcrY)NT)output)rFr[r addExpectedFailurer]rrrrair_z'RegressionTestResult.addExpectedFailurecrY)NT)failure)rFr[r addFailurer]rrrrcmr_zRegressionTestResult.addFailurecs |j||dt||dS)N)skipped)rFr addSkip)rr&reasonrrrreqszRegressionTestResult.addSkipcs||t|dSr)rFr addSuccessrr&rrrrgus zRegressionTestResult.addSuccesscs|j|ddt|dS)NUNEXPECTED_SUCCESS)outcome)rFr addUnexpectedSuccessrhrrrrkysz)RegressionTestResult.addUnexpectedSuccesscCsV|jstd|j}|dt|j|dtt|j|dtt|j|S)NzUSE_XML is falsetestserrorsfailures) r ValueErrorrrr"testsRunlenrmrn)rr.rrrget_xml_element}sz$RegressionTestResult.get_xml_elementF)rNrM __qualname__rr classmethodr6r*rFr[r\rarcrergrkrr __classcell__rrrrr s    $       rc@seZdZdddZddZdS)QuietRegressionTestRunnerFcCst|dd|_||j_dS)Nr)rr2r)rrrrrrr s z"QuietRegressionTestRunner.__init__cCs||j|jSr)r2rhrrrr1s zQuietRegressionTestRunner.runNrs)rNrMrtr r1rrrrrws  rwFcCs&|r tjtjt||dStjt|dS)N) resultclassrr)r) functoolspartialunittestTextTestRunnerrrw)rrrrrget_test_runner_classsr}cCst|||Sr)r})rrcapture_outputrrrget_test_runnerr__main__Tc@s,eZdZddZddZddZddZd S) TestTestscCsdSrrrrrr test_passszTestTests.test_passcCstddS)Ng?)r,sleeprrrrtest_pass_slowrzTestTests.test_pass_slowcCs*tdtjdtdtjd|ddS)Nr?filer@zfailure message)printsysr?r@failrrrr test_failszTestTests.test_failcCs$tdtjdtdtjdtd)Nr?rr@z error message)rrr?r@ RuntimeErrorrrrr test_errorszTestTests.test_errorN)rNrMrtrrrrrrrrrs  rccs|]}|dkVqdS)z-vNr).0arrr srzOutput:zXML: rI)endrs)'__doc__ryiorr,rOr{TextTestResultrrwr}rrNxml.etree.ElementTreeetreerrrTestCaser TestSuitesuiteaddTest makeSuiteStringIOrsumargv runner_clsr?runnerr1r2rr8 tostringlistrrsdecoderrrrs6z