
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \  ã               @   s6  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ddljj	Z
ddlmZ G dd„ dejƒZG dd„ dƒZdd	d
„Zddd„Zedk�r2G dd„ dejƒZejƒ Zejejeƒƒ ejƒ Zeedd„ ejD ƒƒƒZeejƒZejeƒZ e!dej"ƒ ƒ e!ddd� x(e
j#e j$ƒ ƒD ]Z%e!e%j&ƒ dd� �qW e!ƒ  dS )z=Test runner and result class for the regression test suite.

é    N)Údatetimec                   sÊ   e Zd Zdd d Zdd d Z‡ fdd„Zedd„ ƒZ‡ fd	d
„Zd$dd„Z	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d d!„ Zd"d#„ Z‡  ZS )%ÚRegressionTestResultú=éF   Ú
ú-c                s\   t ƒ j||dd� d| _tjdƒ| _| jjdtjƒ j	dƒƒ d | _
d | _g | _t|ƒ| _d S )Nr   )ÚstreamÚdescriptionsÚ	verbosityTZ	testsuiteÚstartú )ÚsuperÚ__init__ÚbufferÚETZElementÚ_RegressionTestResult__suiteÚsetr   ZutcnowZ	isoformatÚ_RegressionTestResult__eÚ!_RegressionTestResult__start_timeZ_RegressionTestResult__resultsÚboolÚ_RegressionTestResult__verbose)Úselfr   r	   r
   )Ú	__class__© ú//usr/lib64/python3.6/test/support/testresult.pyr      s    zRegressionTestResult.__init__c             C   sL   y
|j }W n tk
r"   t|ƒS X y|ƒ S  tk
rB   t|ƒS X t|ƒS )N)ÚidÚAttributeErrorÚstrÚ	TypeErrorÚrepr)ÚclsÚtestZtest_idr   r   r   Z__getId   s    


zRegressionTestResult.__getIdc                sV   t ƒ j|ƒ tj| jdƒ | _}tjƒ | _| j	rR| j
j| j|ƒ› d�ƒ | j
jƒ  d S )NZtestcasez ... )r   Ú	startTestr   Ú
SubElementr   r   ÚtimeÚperf_counterr   r   r   ÚwriteÚgetDescriptionÚflush)r   r!   Úe)r   r   r   r"   +   s    
zRegressionTestResult.startTestFc             K   sP  | j }d | _ |d krd S |jd|jd| j|ƒƒƒ |jd|jddƒƒ |jd|jddƒƒ | jrz|jdtjƒ | j d›ƒ |rÊ| jd k	r¤| jjƒ j	ƒ }|t
j|dƒ_| jd k	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W qÔt|ƒ|	_qÔW d S )NÚnameZstatusÚrunÚresultZ	completedr$   z0.6fz
system-outz
system-errÚitems)r   r   ÚpopÚ_RegressionTestResult__getIdr   r$   r%   Z_stdout_bufferÚgetvalueÚrstripr   r#   ÚtextZ_stderr_bufferr-   Úhasattrr   )r   r!   ZcaptureÚargsr)   ÚstdoutÚstderrÚkÚvZe2Zk2Zv2r   r   r   Ú_add_result3   s4    

z RegressionTestResult._add_resultc             C   s   | j r| jj|› d�ƒ d S )Nr   )r   r   r&   )r   ÚcZwordr   r   r   Z__writeS   s    zRegressionTestResult.__writec             C   sl   t |tƒr0|jdkr|j}q8|j› d|j› �}nt|ƒ}tj||d ƒ}tj|||ƒ}|dj|ƒdj|ƒ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__makeErrorDictW   s    

z$RegressionTestResult.__makeErrorDictc                s4   | j |d| j|Ž d� tƒ j||ƒ | jddƒ d S )NT)ÚerrorÚEÚERROR)r9   Ú$_RegressionTestResult__makeErrorDictr   ÚaddErrorÚ_RegressionTestResult__write)r   r!   Úerr)r   r   r   rM   j   s    zRegressionTestResult.addErrorc                s4   | j |d| j|Ž d� tƒ j||ƒ | jddƒ d S )NT)ÚoutputÚxzexpected failure)r9   rL   r   ÚaddExpectedFailurerN   )r   r!   rO   )r   r   r   rR   o   s    z'RegressionTestResult.addExpectedFailurec                s4   | j |d| j|Ž d� tƒ j||ƒ | jddƒ d S )NT)ZfailureÚFÚFAIL)r9   rL   r   Ú
addFailurerN   )r   r!   rO   )r   r   r   rU   t   s    zRegressionTestResult.addFailurec                s2   | j ||d� tƒ j||ƒ | jdd|›�ƒ d S )N)ZskippedÚSzskipped )r9   r   ÚaddSkiprN   )r   r!   Úreason)r   r   r   rW   y   s    zRegressionTestResult.addSkipc                s&   | j |ƒ tƒ j|ƒ | jddƒ d S )Nr<   Úok)r9   r   Ú
addSuccessrN   )r   r!   )r   r   r   rZ   ~   s    
zRegressionTestResult.addSuccessc                s*   | j |dd� tƒ j|ƒ | jddƒ d S )NZUNEXPECTED_SUCCESS)ZoutcomeÚuzunexpected success)r9   r   ÚaddUnexpectedSuccessrN   )r   r!   )r   r   r   r\   ƒ   s    z)RegressionTestResult.addUnexpectedSuccessc             C   s2   | j r| jjdƒ | jd| jƒ | jd| jƒ d S )Nr   rK   rT   )r   r   r&   ÚprintErrorListÚerrorsÚfailures)r   r   r   r   ÚprintErrorsˆ   s    z RegressionTestResult.printErrorsc             C   s`   xZ|D ]R\}}| j j| jƒ | j j|› d| j|ƒ› d�ƒ | j j| jƒ | j jd| ƒ qW d S )Nz: r   z%s
)r   r&   Ú
separator1r'   Ú
separator2)r   Zflavorr^   r!   rO   r   r   r   r]   Ž   s
    z#RegressionTestResult.printErrorListc             C   sH   | j }|jdt| jƒƒ |jdtt| jƒƒƒ |jdtt| jƒƒƒ |S )NZtestsr^   r_   )r   r   r   ZtestsRunÚlenr^   r_   )r   r)   r   r   r   Úget_xml_element•   s
    z$RegressionTestResult.get_xml_element)F)rB   rA   Ú__qualname__ra   rb   r   Úclassmethodr/   r"   r9   rN   rL   rM   rR   rU   rW   rZ   r\   r`   r]   rd   Ú__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 )N)r,   )r   r!   r   r   r   r+   ¡   s    
zQuietRegressionTestRunner.runN)F)rB   rA   re   r   r+   r   r   r   r   rh   œ   s   
rh   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   rh   )r
   r   r   r   r   Úget_test_runner_class¥   s    rl   c             C   s   t ||ƒ| ƒS )N)rl   )r   r
   Zcapture_outputr   r   r   Úget_test_runner­   s    rm   Ú__main__c               @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú	TestTestsc             C   s   d S )Nr   )r   r   r   r   Ú	test_pass²   s    zTestTests.test_passc             C   s   t jdƒ d S )Ng      ð?)r$   Zsleep)r   r   r   r   Útest_pass_slowµ   s    zTestTests.test_pass_slowc             C   s*   t dtjd� t dtjd� | jdƒ d S )Nr5   )Úfiler6   zfailure message)ÚprintÚsysr5   r6   Zfail)r   r   r   r   Ú	test_fail¸   s    zTestTests.test_failc             C   s(   t dtjd� t dtjd� tdƒ‚d S )Nr5   )rr   r6   zerror message)rs   rt   r5   r6   ÚRuntimeError)r   r   r   r   Ú
test_error½   s    zTestTests.test_errorN)rB   rA   re   rp   rq   ru   rw   r   r   r   r   ro   ±   s   ro   c             c   s   | ]}|d kV  qdS )z-vNr   )Ú.0Úar   r   r   ú	<genexpr>Å   s    rz   zOutput:zXML: r=   )Úend)F)F)'Ú__doc__ri   Úiort   r$   rC   rk   Zxml.etree.ElementTreeZetreeZElementTreer   r   ZTextTestResultr   rh   rl   rm   rB   ZTestCasero   Z	TestSuiteZsuiteZaddTestZ	makeSuiteÚStringIOr   ÚsumÚargvZ
runner_clsr5   Zrunnerr+   r,   rs   r0   Ztostringlistrd   ÚsÚdecoder   r   r   r   Ú<module>   s4    	




