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

  \8)  ã               @   sh   d dl Z d dlZd dlZddlmZmZ ddlmZ dZdZ	dZ
dd	„ Zd
d„ ZG dd„ deƒZeZdS )é    Né   )ÚloaderÚrunner)ÚinstallHandlerTa  Examples:
  %(prog)s test_module               - run tests from test_module
  %(prog)s module.TestClass          - run tests from module.TestClass
  %(prog)s module.Class.test_method  - run specified test method
  %(prog)s path/to/test_file.py      - run tests from test_file.py
aF  Examples:
  %(prog)s                           - run default set of tests
  %(prog)s MyTestSuite               - run suite 'MyTestSuite'
  %(prog)s MyTestCase.testSomething  - run MyTestCase.testSomething
  %(prog)s MyTestCase                - run all 'test*' test methods
                                       in MyTestCase
c             C   sx   t jj| ƒrt| jƒ jdƒrtt jj| ƒrXt jj| t jƒ ƒ}t jj|ƒsP|jt j	ƒrT| S |} | d d… j
ddƒj
ddƒS | S )Nz.pyé   ú\Ú.ú/éýÿÿÿ)ÚosÚpathÚisfileÚlowerÚendswithÚisabsÚrelpathÚgetcwdÚ
startswithÚpardirÚreplace)ÚnameZrel_path© r   ú%/usr/lib64/python3.6/unittest/main.pyÚ_convert_name   s    r   c             C   s   dd„ | D ƒS )Nc             S   s   g | ]}t |ƒ‘qS r   )r   )Ú.0r   r   r   r   ú
<listcomp>.   s    z"_convert_names.<locals>.<listcomp>r   )Únamesr   r   r   Ú_convert_names-   s    r   c               @   s¨   e Zd ZdZdZd Z Z Z ZZ	dZ
ddddejddddddfddœdd„Zdd	d
„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zddd„Zdd„ ZdS )ÚTestProgramNr   Ú__main__TF)Ú	tb_localsc            C   sÐ   t |tƒr@t|ƒ| _x0|jdƒdd … D ]}t| j|ƒ| _q(W n|| _|d krTtj}|| _|| _	|	| _
|| _|
| _|| _|d kr�tj r�d| _n|| _|| _|| _|| _tjj|d ƒ| _| j|ƒ | jƒ  d S )Nr   r   Údefaultr   )Ú
isinstanceÚstrÚ
__import__ÚmoduleÚsplitÚgetattrÚsysÚargvÚexitÚfailfastÚ
catchbreakÚ	verbosityÚbufferr    ÚwarnoptionsÚwarningsÚdefaultTestÚ
testRunnerÚ
testLoaderr   r   ÚbasenameÚprogNameÚ	parseArgsÚrunTests)Úselfr%   r1   r)   r2   r3   r*   r-   r+   r,   r.   r0   r    Úpartr   r   r   Ú__init__;   s,    


zTestProgram.__init__c             C   s4   |rt |ƒ | jd kr| jƒ  | jƒ  tjdƒ d S )Né   )ÚprintÚ_discovery_parserÚ_initArgParsersÚ_print_helpr(   r*   )r8   Úmsgr   r   r   Ú	usageExita   s    
zTestProgram.usageExitc             O   sZ   | j d kr6t| jjƒ ƒ ttd| ji ƒ | jjƒ  n t| jjƒ ƒ ttd| ji ƒ d S )NÚprog)	r%   r<   Ú_main_parserZformat_helpÚMAIN_EXAMPLESr5   r=   Ú
print_helpÚMODULE_EXAMPLES)r8   ÚargsÚkwargsr   r   r   r?   i   s    
zTestProgram._print_helpc             C   sê   | j ƒ  | jd krpt|ƒdkrD|d jƒ dkrD| j|dd … ƒ d S | jj|dd … | ƒ | js†| jg ƒ d S n| jj|dd … | ƒ | jr¨t| jƒ| _	t
dkrÞd | _n6| jd krºd | _	n$t| jtƒrÒ| jf| _	nt| jƒ| _	| jƒ  d S )Nr   Údiscoverr;   r   )r>   r%   Úlenr   Ú_do_discoveryrC   Ú
parse_argsÚtestsr   Ú	testNamesÚ__name__r1   r"   r#   ÚlistÚcreateTests)r8   r)   r   r   r   r6   r   s(    


zTestProgram.parseArgsc             C   s4   | j d kr| jj| jƒ| _n| jj| j | jƒ| _d S )N)rN   r3   ZloadTestsFromModuler%   ÚtestZloadTestsFromNames)r8   r   r   r   rQ   �   s    

zTestProgram.createTestsc             C   s$   | j ƒ }| j|ƒ| _| j|ƒ| _d S )N)Ú_getParentArgParserÚ_getMainArgParserrC   Ú_getDiscoveryArgParserr=   )r8   Zparent_parserr   r   r   r>   –   s    zTestProgram._initArgParsersc             C   sº   t jdd�}|jddddddd	� |jd
dddddd	� |jddddd� | jd krn|jdddddd� d| _| jd kr’|jdddddd� d| _| jd kr¶|jdddddd� d| _|S )NF)Zadd_helpz-vz	--verboser-   Zstore_constr;   zVerbose output)ÚdestÚactionZconstÚhelpz-qz--quietr   zQuiet outputz--localsr    Ú
store_truez"Show local variables in tracebacks)rV   rW   rX   z-fz
--failfastr+   zStop on first fail or errorz-cz--catchr,   z'Catch Ctrl-C and display results so farz-bz--bufferr.   z%Buffer stdout and stderr during tests)ÚargparseÚArgumentParserÚadd_argumentr+   r,   r.   )r8   Úparserr   r   r   rS   ›   s4    







zTestProgram._getParentArgParserc             C   s2   t j|gd�}| j|_| j|_|jdddd� |S )N)ÚparentsrM   Ú*z?a list of any number of test modules, classes and test methods.)ÚnargsrX   )rZ   r[   r5   rB   r?   rE   r\   )r8   Úparentr]   r   r   r   rT   ¹   s    zTestProgram._getMainArgParserc             C   s~   t j|gd�}d| j |_d|_|jddddd� |jd	d
ddd� |jddddd� x"dD ]}|j|dt jt jd� q\W |S )N)r^   z%s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryÚstartz*Directory to start discovery ('.' default))rV   rX   z-pz	--patternÚpatternz+Pattern to match tests ('test*.py' default)z-tz--top-level-directoryÚtopz<Top level directory of project (defaults to start directory)ú?)r`   r!   rX   )rb   rc   rd   )rZ   r[   r5   rB   Zepilogr\   ZSUPPRESS)r8   ra   r]   Úargr   r   r   rU   Ä   s    



z"TestProgram._getDiscoveryArgParserc             C   sh   d| _ d| _d | _|d k	r:| jd kr,| jƒ  | jj|| ƒ |d krH| jn|ƒ }|j| j | j| jƒ| _d S )Nr   ztest*.py)	rb   rc   rd   r=   r>   rL   r3   rI   rR   )r8   r)   ÚLoaderr   r   r   r   rK   Ù   s    
zTestProgram._do_discoveryc             C   sÐ   | j rtƒ  | jd krtj| _t| jtƒr yVy"| j| j| j| j	| j
| jd�}W n. tk
r|   | j| j| j| j	| j
d�}Y nX W q¦ tk
rœ   | jƒ }Y q¦X n| j}|j| jƒ| _| jrÌtj| jjƒ  ƒ d S )N)r-   r+   r.   r0   r    )r-   r+   r.   r0   )r,   r   r2   r   ZTextTestRunnerr"   Útyper-   r+   r.   r0   r    Ú	TypeErrorZrunrR   Úresultr*   r(   ZwasSuccessful)r8   r2   r   r   r   r7   ç   s.    
zTestProgram.runTests)N)N)rO   Ú
__module__Ú__qualname__r%   r-   r+   r,   r.   r5   r0   r=   r   ZdefaultTestLoaderr:   rA   r?   r6   rQ   r>   rS   rT   rU   rK   r7   r   r   r   r   r   1   s$   #
	
r   )r(   rZ   r   Ú r   r   Zsignalsr   Z
__unittestrD   rF   r   r   Úobjectr   Úmainr   r   r   r   Ú<module>   s   	 T