
­­­­­­­­­­­­­­­­­­
<!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rt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