<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

Yf8)                 @   s   d  Z  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 Gd d   d e  Z e Z d S)zUnittest 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 j |   r |  j   j d  r t  j j |   r t  j j |  t  j    } t  j j |  sx | j t  j	  r| |  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   2/opt/alt/python35/lib64/python3.5/unittest/main.py_convert_name   s    '$&r   c             C   s   d d   |  D S)Nc             S   s   g  |  ] } t  |   q Sr   )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 d Z Z Z Z	 Z
 d Z d d d d e j d d d d d d 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)TestProgramzA command-line program that runs a set of tests; this is primarily
       for making test modules conveniently executable.
    Nr   __main__T	tb_localsFc            C   s(  t  | t  rZ t |  |  _ xB | j d  d d   D] } t |  j |  |  _ q8 Wn	 | |  _ | d  k rx t 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   sD   | 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   sw   |  j  d  k rI t |  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   sE  |  j    |  j d  k r t |  d k r\ | d j   d k r\ |  j | d d    d  S|  j j | d d   |   |  j s |  j g   d  Sn |  j j | d d   |   |  j r t |  j  |  _	 t
 d k r7d  |  _ nQ |  j d  k rd  |  _	 n6 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   sL   |  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   s4   |  j    } |  j |  |  _ |  j |  |  _ d  S)N)_getParentArgParser_getMainArgParserrC   _getDiscoveryArgParserr=   )r8   Zparent_parserr   r   r   r>      s    zTestProgram._initArgParsersc             C   s3  t  j d d  } | j d d d d d d d	 d
 d d | j d d d d d d d	 d d d | j d d d d d d d |  j d  k r | j d d d d d d d d d |  _ |  j d  k r | j d d d d d d d d d |  _ |  j d  k r/| j d d d d d d d d  d |  _ | S)!NZadd_helpFz-vz	--verbosedestr-   actionZstore_constZconstr;   helpzVerbose outputz-qz--quietr   zQuiet outputz--localsr    
store_truez"Show local variables in tracebacksz-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   sJ   t  j d | g  } |  j | _ |  j | _ | j d d d d d | S)NparentsrM   nargs*rX   z?a list of any number of test modules, classes and test methods.)rZ   r[   r5   rB   r?   rE   r\   )r8   parentr]   r   r   r   rT      s    zTestProgram._getMainArgParserc          	   C   s   t  j d | g  } d |  j | _ d | _ | j d d d d d d	 | j d
 d d d d d | j d d d d d d x3 d D]+ } | j | d d d t  j d t  j q W| S)Nr^   z%s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryrV   startrX   z*Directory to start discovery ('.' default)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!   )rb   rc   rd   )rZ   r[   r5   rB   Zepilogr\   ZSUPPRESS)r8   ra   r]   argr   r   r   rU      s    		z"TestProgram._getDiscoveryArgParserc             C   s   d |  _  d |  _ d  |  _ | d  k	 rS |  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 y y= |  j d |  j d |  j d |  j	 d |  j
 d |  j  } WnB t k
 r |  j d |  j d |  j d |  j	 d |  j
  } Yn XWq t k
 r |  j   } Yq Xn	 |  j } | j |  j  |  _ |  j r%t j |  j j    d  S)Nr-   r+   r.   r0   r    )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)rO   
__module____qualname____doc__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   )rm   r(   rZ   r    r   r   Zsignalsr   Z
__unittestrD   rF   r   r   objectr   mainr   r   r   r   <module>   s   	