
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    •VF  ã                   @   s˜   d Z ddlmZ ddlZddlZddlZddlZe e¡Z	G dd„ dej
ƒZG dd„ dej
ƒZzddlmZ d	ZeZW n ek
r’   d
ZeZY nX dS )aß  setuptools/distutils commands to run testr via setup.py

Currently provides 'testr' which runs tests using testr. You can pass
--coverage which will also export PYTHON='coverage run --source <your package>'
and automatically combine the coverage from each testr backend test runner
after the run completes.

To use, just use setuptools/distribute and depend on testr, and it should be
picked up automatically (as the commands are exported in the testrepository
package metadata.
é    )ÚcmdNc                   @   s\   e Zd ZdZdddddddgZd	d
dgZdd„ Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )Ú	TestrRealúRun unit tests using testr)ÚcoverageNzGReplace PYTHON with coverage and merge coverage from each testr worker.)ztestr-args=ÚtzRun 'testr' with these args)zomit=Úoz(Files to omit from coverage calculations)zcoverage-package-name=Nz"Use this name for coverage package)ÚslowestNz-Show slowest test times after tests complete.)zno-parallelNzRun testr serially)z
log-level=ÚlzLog level (default: info)r   r   Úno_parallelc                 G   s2   t  d|¡ t tjd gt|ƒ tjtjtj	¡S )Nz _run_testr called with args = %rr   )
ÚloggerÚdebugÚcommandsZrun_argvÚsysÚargvÚlistÚstdinÚstdoutÚstderr)ÚselfÚargs© r   úB/opt/alt/python38/lib/python3.8/site-packages/pbr/testr_command.pyÚ
_run_testrC   s      ÿzTestrReal._run_testrc                 C   s.   d | _ d | _d| _d | _d | _d | _d| _d S )NÚ Úinfo)Ú
testr_argsr   Úomitr   Úcoverage_package_namer
   Ú	log_level©r   r   r   r   Úinitialize_optionsH   s    zTestrReal.initialize_optionsc                 C   sp   t t| j ¡ tjƒ| _tj| jd� t d¡ | jd kr@g | _n| j 	¡ | _| j
r^d| j
 | _
t d| j¡ d S )N)Úlevelzfinalize_options calledz	--omit=%sz$finalize_options: self.__dict__ = %r)ÚgetattrÚloggingr   ÚupperÚINFOZbasicConfigr   r   r   Úsplitr   Ú__dict__r   r   r   r   Úfinalize_optionsQ   s    ý

zTestrReal.finalize_optionsc                 C   s”   t  d¡ tj d¡s |  d¡ | jr.|  ¡  | jsF| jd
| j	žŽ }n| jd| j	žŽ }|rjt
j d| ¡‚| jr‚tdƒ |  d¡ | jr�|  ¡  d	S )z"Set up testr repo, then run testr.z
run calledz.testrepositoryZinitÚrunú
--parallelztestr failed (%d)zSlowest Testsr   N)r)   r*   )r)   )r   r   ÚosÚpathÚisdirr   r   Ú_coverage_beforer
   r   Ú	distutilsÚerrorsÚDistutilsErrorr   ÚprintÚ_coverage_after)r   Z	testr_retr   r   r   r)   `   s"    

ÿ
zTestrReal.runc                 C   sb   t  d¡ | j ¡ }| d¡r*|dd … }| jr6| j}d| }d| tjd< t  dtjd ¡ d S )Nz_coverage_before calledzpython-é   z--source %s --parallel-modezcoverage run %sZPYTHONzos.environ['PYTHON'] = %r)r   r   ZdistributionZget_nameÚ
startswithr   r+   Úenviron)r   ÚpackageÚoptionsr   r   r   r.   u   s    


zTestrReal._coverage_beforec                 C   s(   t  d¡ t d¡ t d| j ¡ d S )Nz_coverage_after calledzcoverage combinezcoverage html -d ./cover %s)r   r   r+   Úsystemr   r   r   r   r   r3   ‚   s    

zTestrReal._coverage_afterN)Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsZboolean_optionsr   r    r(   r)   r.   r3   r   r   r   r   r   2   s    ø
	r   c                   @   s,   e Zd ZdZg Zdd„ Zdd„ Zdd„ ZdS )	Ú	TestrFaker   c                 C   s   d S ©Nr   r   r   r   r   r    Œ   s    zTestrFake.initialize_optionsc                 C   s   d S r@   r   r   r   r   r   r(   �   s    zTestrFake.finalize_optionsc                 C   s   t dƒ d S )Nz7Install testrepository to run 'testr' command properly.)r2   r   r   r   r   r)   ’   s    zTestrFake.runN)r:   r;   r<   r=   r>   r    r(   r)   r   r   r   r   r?   ˆ   s
   r?   )r   TF)Ú__doc__r/   r   Údistutils.errorsr#   r+   r   Z	getLoggerr:   r   ZCommandr   r?   Ztestrepositoryr   Z
have_testrZTestrÚImportErrorr   r   r   r   Ú<module>   s   
V