MINI MINI MANI MO
3
  \8)                 @   sh   d dl Z d dlZd dlZddlmZmZ ddlmZ dZdZ	dZ
dd	 Zd
d ZG dd
 d
e
ZeZdS )    N   )loaderrunner)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 jj| rt| j jdrtt jj| rXt jj| t j }t jj|sP|jt j	rT| S |} | d d j
ddj
ddS | S )Nz.py   \./)ospathisfilelowerendswithisabsrelpathgetcwd
startswithpardirreplace)nameZrel_path r   %/usr/lib64/python3.6/unittest/main.py
_convert_name   s    r   c             C   s   dd | D S )Nc             S   s   g | ]}t |qS r   )r   ).0r   r   r   r   
<listcomp>.   s    z"_convert_names.<locals>.<listcomp>r   )namesr   r   r   _convert_names-   s    r   c               @   s   e Zd ZdZdZd Z Z Z ZZ	dZ
ddddejddddddfddddZ
dd	d
Zdd Zd
d Zdd Zdd Zdd Zdd Zdd ZdddZdd ZdS )TestProgramNr   __main__TF)	tb_localsc            C   s   t |tr@t|| _x0|jddd  D ]}
t| j|
| _q(W n|| _|d krTtj}|| _|| _	|	| _
|| _|
| _|| _
|d krtj rd| _n|| _|| _|| _|| _tjj|d | _| j| | j  d S )Nr   r   defaultr   )
isinstancestr
__import__modulesplitgetattrsysargvexitfailfast
catchbreak	verbositybufferr    warnoptionswarningsdefaultTest
testRunner
testLoaderr   r   basenameprogName	parseArgsrunTests)selfr%   r1   r)   r2   r3   r*   r-   r+   r,   r.   r0   r    partr   r   r   __init__;   s,    
zTestProgram.__init__c             C   s4   |rt | | jd kr| j  | j  tjd d S )N   )print_discovery_parser_initArgParsers_print_helpr(   r*   )r8   msgr   r   r   	usageExita   s    
zTestProgram.usageExitc             O   sZ   | j d kr6t| jj  ttd| ji  | jj  n t| jj  ttd| ji  d S )Nprog)	r%   r<