
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!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ÚcommandsÚ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ÚINFOÚ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.testrepositoryÚ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   Ú	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 %sÚPYTHONzos.environ['PYTHON'] = %r)r   r   ÚdistributionÚget_nameÚ
startswithr   r.   Úenviron)r   ÚpackageÚoptionsr   r   r   r1   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   r6   ‚   s    

zTestrReal._coverage_afterN)Ú__name__Ú
__module__Ú__qualname__ÚdescriptionÚuser_optionsÚboolean_optionsr   r!   r*   r,   r1   r6   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 rH   r   r    r   r   r   r*   �   s    zTestrFake.finalize_optionsc                 C   s   t dƒ d S )Nz7Install testrepository to run 'testr' command properly.)r5   r    r   r   r   r,   ’   s    zTestrFake.runN)rA   rB   rC   rD   rE   r!   r*   r,   r   r   r   r   rG   ˆ   s
   rG   )r   TF)Ú__doc__r2   r   Údistutils.errorsr$   r.   r   Ú	getLoggerrA   r   ÚCommandr   rG   Ztestrepositoryr   Ú
have_testrÚTestrÚImportErrorr   r   r   r   Ú<module>   s   
V