Mini Shell
a
�DOg�+ � @ st d Z ddlZddlZddlZddlmZmZ ddlmZ dZ dZ
dZd d
� Zdd� Z
d
d� ZG dd� 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 s� t j�| �r|| �� �d�r|t j�| �rXt j�| t �� �}t j�|�sP|�t j �rT| S |} t j�
| �d d� �dd��dd�S | S )Nz.py����\�.�/)�os�path�isfile�lower�endswith�isabs�relpath�getcwd�
startswith�pardir�normpath�replace)�nameZrel_path� r �%/usr/lib64/python3.9/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>. � z"_convert_names.<locals>.<listcomp>r )�namesr r r �_convert_names- s r c C s d| vrd| } | S )N�*z*%s*r )�patternr r r �_convert_select_pattern1 s r! c @ s� e Zd ZdZdZdZd Z Z Z Z Z
ZdZdddde
jddddddfdd�dd �Zdd
d�Zdd
� Zdd� Zddd�Zdd� Zdd� Zdd� Zdd� Zd dd�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|�| _|�d�dd � D ]}
t| j|
�| _q&n|| _|d u rPtj}|| _|| _ | | _
|| _|
| _|| _
|d u r�tjs�d| _n|| _|| _|| _|| _tj�|d �| _| �|� | �� 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) r5 r- r6 r7 r. r1 r/ r0 r2 r4 r$ �partr r r �__init__A s,
zTestProgram.__init__c C s4 |rt |� | jd u r| �� | �� t�d� d S )N� )�print�_discovery_parser�_initArgParsers�_print_helpr, r. )r<