File: //lib64/python3.6/unittest/__pycache__/main.cpython-36.pyc
3
  \8)  �               @   sl   d Z ddlZddlZddlZddlmZmZ ddlmZ dZ	dZ
dZd	d
� Zdd� Z
G d
d� de�ZeZdS )zUnittest main program�    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 jj| �rt| j� jd�rtt jj| �rXt jj| t j� �}t jj|�sP|jt j	�rT| S |} | d d� j
dd�j
dd�S | S )Nz.py�   �\�.�/���)�os�path�isfile�lower�endswith�isabs�relpath�getcwd�
startswith�pardir�replace)�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 ZdZdZdZd Z Z Z Z	Z
dZddddej
ddddddfdd�dd	�Zdd
d�Zdd
� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zddd�Zdd� ZdS ) �TestProgramzA command-line program that runs a set of tests; this is primarily
       for making test modules conveniently executable.
    Nr   �__main__TF)�	tb_localsc            C   s�   t |t�r@t|�| _x0|jd�dd � D ]}
t| j|
�| _q(W n|| _|d krTtj}|| _|| _	|	| _
|| _|
| _|| _
|d kr�tj r�d| _n|| _|| _|| _|| _tjj|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,    
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 )N�prog)	r%   r<