o
    ^hn                     @   s2  d Z ddlZddlZddlZddlZddlZddlZG dd dejZG dd dZ	ddd	Z
dd
dZedkrddlm  mZ de_G dd dejZe Zeee e Ze
edd ejD ZeejZeeZ e!de"  e!ddd e#e $ D ]
Z%e!e%& dd qe!  dS dS )z=Test runner and result class for the regression test suite.

    Nc                       s   e Zd ZdZ fddZedd Z fddZddd	Zed
d Z	 fddZ
 fddZ fddZ fddZ fddZ fddZdd Z  ZS )RegressionTestResultFc                    sx   t  j|||r	dndd d| _| jr7ddlm} ddlm} || _|d| _	| j	
d| d	 d | _d | _d S )
N   r   )streamdescriptions	verbosityT)ElementTree)datetimeZ	testsuitestart )super__init__bufferUSE_XMLZ	xml.etreer   r   _RegressionTestResult__ETZElement_RegressionTestResult__suitesetZutcnowZ	isoformat_RegressionTestResult__e!_RegressionTestResult__start_time)selfr   r   r   ETr   	__class__ )  /home/conda/feedstock_root/build_artifacts/python-split_1761171407825/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.10/test/support/testresult.pyr      s   


zRegressionTestResult.__init__c                 C   sJ   z|j }W n ty   t| Y S w z| W S  ty$   t| Y S w N)idAttributeErrorstr	TypeErrorrepr)clstestZtest_idr   r   r   Z__getId   s   
zRegressionTestResult.__getIdc                    s6   t  | | jr| j| jd | _}t | _	d S )NZtestcase)
r   	startTestr   r   
SubElementr   r   timeperf_counterr   )r   r!   er   r   r   r"   (   s   zRegressionTestResult.startTestc              	   K   sN  | j sd S | j}d | _|d u rd S | j}|d|d| | |d|dd |d|dd | jrE|dt | j d |rm| j	d urZ| j	
  }|||d_| jd urm| j
  }|||d	_| D ]3\}}	|ry|	szqq|||}
t|	d
r|	 D ]\}}|r|
|t| qt||
_qqqt|	|
_qqd S )NnamestatusrunresultZ	completedr$   z0.6fz
system-outz
system-erritems)r   r   r   r   pop_RegressionTestResult__getIdr   r$   r%   Z_stdout_buffergetvaluerstripr#   textZ_stderr_bufferr+   hasattrr   )r   r!   captureargsr&   r   stdoutstderrkve2Zk2Zv2r   r   r   _add_result.   s>   


z RegressionTestResult._add_resultc                 C   sl   t |tr|jdkr|j}n|j d|j }nt|}t||d }t|||}|d|d|dS )Nbuiltins. )typemessager<   )
isinstancer=   
__module____name__r   	tracebackformat_exceptionjoin)r    Zerr_typeZ	err_valueZerr_tbtypenamemsgtbr   r   r   Z__makeErrorDictR   s   

z$RegressionTestResult.__makeErrorDictc                    (   | j |d| j| d t || d S )NT)error)r9   $_RegressionTestResult__makeErrorDictr   addErrorr   r!   errr   r   r   rK   e      zRegressionTestResult.addErrorc                    rH   )NT)output)r9   rJ   r   addExpectedFailurerL   r   r   r   rP   i   rN   z'RegressionTestResult.addExpectedFailurec                    rH   )NT)Zfailure)r9   rJ   r   
addFailurerL   r   r   r   rQ   m   rN   zRegressionTestResult.addFailurec                    s    | j ||d t || d S )N)Zskipped)r9   r   addSkip)r   r!   reasonr   r   r   rR   q   s   zRegressionTestResult.addSkipc                    s   |  | t | d S r   )r9   r   
addSuccessr   r!   r   r   r   rT   u   s   
zRegressionTestResult.addSuccessc                    s   | j |dd t | d S )NZUNEXPECTED_SUCCESS)outcome)r9   r   addUnexpectedSuccessrU   r   r   r   rW   y   s   z)RegressionTestResult.addUnexpectedSuccessc                 C   sV   | j std| j}|dt| j |dtt| j |dtt| j |S )NzUSE_XML is falseZtestserrorsfailures)	r   
ValueErrorr   r   r   ZtestsRunlenrX   rY   )r   r&   r   r   r   get_xml_element}   s   z$RegressionTestResult.get_xml_elementF)rA   r@   __qualname__r   r   classmethodr-   r"   r9   rJ   rK   rP   rQ   rR   rT   rW   r\   __classcell__r   r   r   r   r      s     

$
r   c                   @   s   e Zd ZdddZdd ZdS )QuietRegressionTestRunnerFc                 C   s   t |d d| _|| j_d S )Nr   )r   r*   r   )r   r   r   r   r   r   r      s   z"QuietRegressionTestRunner.__init__c                 C   s   || j  | j S r   )r*   rU   r   r   r   r)      s   
zQuietRegressionTestRunner.runNr]   )rA   r@   r^   r   r)   r   r   r   r   ra      s    
ra   Fc                 C   s&   | rt jtjt|| dS t jt|dS )N)Zresultclassr   r   )r   )	functoolspartialunittestZTextTestRunnerr   ra   )r   r   r   r   r   get_test_runner_class   s   re   c                 C   s   t ||| S r   )re   )r   r   capture_outputr   r   r   get_test_runner      rg   __main__Tc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
	TestTestsc                 C   s   d S r   r   r   r   r   r   	test_pass   s   zTestTests.test_passc                 C   s   t d d S )Ng      ?)r$   sleeprk   r   r   r   test_pass_slow   rh   zTestTests.test_pass_slowc                 C   s*   t dtjd t dtjd | d d S )Nr4   filer5   zfailure message)printsysr4   r5   Zfailrk   r   r   r   	test_fail   s   zTestTests.test_failc                 C   s$   t dtjd t dtjd td)Nr4   ro   r5   zerror message)rq   rr   r4   r5   RuntimeErrorrk   r   r   r   
test_error   s   zTestTests.test_errorN)rA   r@   r^   rl   rn   rs   ru   r   r   r   r   rj      s
    rj   c                 c   s    | ]}|d kV  qdS )z-vNr   ).0ar   r   r   	<genexpr>   s    rx   zOutput:zXML: r<   )endr]   )'__doc__rb   iorr   r$   rB   rd   ZTextTestResultr   ra   re   rg   rA   Zxml.etree.ElementTreeZetreer   r   r   ZTestCaserj   Z	TestSuiteZsuiteZaddTestZ	makeSuiteStringIOr   sumargvZ
runner_clsr4   Zrunnerr)   r*   rq   r.   Ztostringlistr\   sdecoder   r   r   r   <module>   s6    z
	



