3 \ ã@s2ddlZddlZddlZddlZddlZddlZddljjZ ddl m Z Gdd„dej ƒZ Gdd„dƒZ ddd „Zdd d „Zed k�r.Gd d„dejƒZejƒZejejeƒƒejƒZeedd„ejDƒƒƒZeejƒZejeƒZe dej!ƒƒe ddd�x(e j"ej#ƒƒD]Z$e e$j%ƒdd��qWe ƒdS)éN)ÚdatetimecsÊeZdZdddZdddZ‡fdd„Zedd„ƒZ‡fd d „Zd$d d „Z dd„Z edd„ƒZ ‡fdd„Z ‡fdd„Z ‡fdd„Z‡fdd„Z‡fdd„Z‡fdd„Zdd„Zd d!„Zd"d#„Z‡ZS)%ÚRegressionTestResultú=éFÚ ú-cs\tƒj||dd�d|_tjdƒ|_|jjdtjƒj dƒƒd|_ d|_ g|_ t |ƒ|_dS)Nr)ÚstreamÚ descriptionsÚ verbosityTZ testsuiteÚstartú )ÚsuperÚ__init__ÚbufferÚETZElementÚ_RegressionTestResult__suiteÚsetrZutcnowZ isoformatÚ_RegressionTestResult__eÚ!_RegressionTestResult__start_timeZ_RegressionTestResult__resultsÚboolÚ_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)ÚidÚAttributeErrorÚstrÚ TypeErrorÚrepr)ÚclsÚtestZtest_idrrrZ__getIds   zRegressionTestResult.__getIdcsVtƒj|ƒtj|jdƒ|_}tjƒ|_|j rR|j j |j |ƒ›d�ƒ|j j ƒdS)NZtestcasez ... )r Ú startTestrÚ SubElementrrÚtimeÚ perf_counterrrrÚwriteÚgetDescriptionÚflush)rr!Úe)rrrr"+s   zRegressionTestResult.startTestFc KsP|j}d|_|dkrdS|jd|jd|j|ƒƒƒ|jd|jddƒƒ|jd|jddƒƒ|jrz|jdtjƒ|jd›ƒ|rÊ|jdk r¤|jjƒj ƒ}|t j |dƒ_ |j dk rÊ|j jƒj ƒ}|t j |d ƒ_ x€|jƒD]t\}}| sÔ| rêqÔt j ||ƒ} t|d ƒ�r>xD|jƒD],\} } | �r,| j| t| ƒƒn t| ƒ| _ �q WqÔt|ƒ| _ qÔWdS) NÚnameZstatusÚrunÚresultZ completedr$z0.6fz system-outz system-errÚitems)rrÚpopÚ_RegressionTestResult__getIdrr$r%Z_stdout_bufferÚgetvalueÚrstriprr#ÚtextZ_stderr_bufferr-Úhasattrr) rr!ZcaptureÚargsr)ÚstdoutÚstderrÚkÚvZe2Zk2Zv2rrrÚ _add_result3s4     z RegressionTestResult._add_resultcCs|jr|jj|›d�ƒdS)Nr)rrr&)rÚcZwordrrrZ__writeSszRegressionTestResult.__writecCslt|tƒr0|jdkr|j}q8|j›d|j›�}nt|ƒ}tj||dƒ}tj|||ƒ}|dj|ƒdj|ƒdœS)NÚbuiltinsÚ.Ú)ÚtypeÚmessager=)Ú isinstancer>Ú __module__Ú__name__rÚ tracebackÚformat_exceptionÚjoin)r Zerr_typeZ err_valueZerr_tbÚtypenameÚmsgÚtbrrrZ__makeErrorDictWs  z$RegressionTestResult.__makeErrorDictcs4|j|d|j|Žd�tƒj||ƒ|jddƒdS)NT)ÚerrorÚEÚERROR)r9Ú$_RegressionTestResult__makeErrorDictr ÚaddErrorÚ_RegressionTestResult__write)rr!Úerr)rrrrMjszRegressionTestResult.addErrorcs4|j|d|j|Žd�tƒj||ƒ|jddƒdS)NT)ÚoutputÚxzexpected failure)r9rLr ÚaddExpectedFailurerN)rr!rO)rrrrRosz'RegressionTestResult.addExpectedFailurecs4|j|d|j|Žd�tƒj||ƒ|jddƒdS)NT)ZfailureÚFÚFAIL)r9rLr Ú addFailurerN)rr!rO)rrrrUtszRegressionTestResult.addFailurecs2|j||d�tƒj||ƒ|jdd|›�ƒdS)N)ZskippedÚSzskipped )r9r ÚaddSkiprN)rr!Úreason)rrrrWyszRegressionTestResult.addSkipcs&|j|ƒtƒj|ƒ|jddƒdS)Nr<Úok)r9r Ú addSuccessrN)rr!)rrrrZ~s  zRegressionTestResult.addSuccesscs*|j|dd�tƒj|ƒ|jddƒdS)NZUNEXPECTED_SUCCESS)ZoutcomeÚuzunexpected success)r9r ÚaddUnexpectedSuccessrN)rr!)rrrr\ƒs z)RegressionTestResult.addUnexpectedSuccesscCs2|jr|jjdƒ|jd|jƒ|jd|jƒdS)NrrKrT)rrr&ÚprintErrorListÚerrorsÚfailures)rrrrÚ printErrorsˆs 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_)rrrZtestsRunÚlenr^r_)rr)rrrÚget_xml_element•s z$RegressionTestResult.get_xml_element)F)rBrAÚ __qualname__rarbrÚ classmethodr/r"r9rNrLrMrRrUrWrZr\r`r]rdÚ __classcell__rr)rrrs"           rc@seZdZddd„Zdd„ZdS)ÚQuietRegressionTestRunnerFcCst|ddƒ|_||j_dS)Nr)rr,r)rrrrrrr�sz"QuietRegressionTestRunner.__init__cCs||jƒ|jS)N)r,)rr!rrrr+¡s zQuietRegressionTestRunner.runN)F)rBrArerr+rrrrrhœs rhFcCs&|rtjtjt||d�Stjt|d�S)N)Z resultclassrr )r)Ú functoolsÚpartialÚunittestZTextTestRunnerrrh)r rrrrÚget_test_runner_class¥s rlcCst||ƒ|ƒS)N)rl)rr Zcapture_outputrrrÚget_test_runner­srmÚ__main__c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú TestTestscCsdS)Nr)rrrrÚ test_pass²szTestTests.test_passcCstjdƒdS)Ngð?)r$Zsleep)rrrrÚtest_pass_slowµszTestTests.test_pass_slowcCs*tdtjd�tdtjd�|jdƒdS)Nr5)Úfiler6zfailure message)ÚprintÚsysr5r6Zfail)rrrrÚ test_fail¸szTestTests.test_failcCs(tdtjd�tdtjd�tdƒ‚dS)Nr5)rrr6z error message)rsrtr5r6Ú RuntimeError)rrrrÚ test_error½szTestTests.test_errorN)rBrArerprqrurwrrrrro±sroccs|]}|dkVqdS)z-vNr)Ú.0Úarrrú ÅsrzzOutput:zXML: r=)Úend)F)F)&riÚiortr$rCrkZxml.etree.ElementTreeZetreeZ ElementTreerrZTextTestResultrrhrlrmrBZTestCaseroZ TestSuiteZsuiteZaddTestZ makeSuiteÚStringIOrÚsumÚargvZ runner_clsr5Zrunnerr+r,rsr0Z tostringlistrdÚsÚdecoderrrrÚs2