add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
U

�AT^�+c@stdZddlZddlZddlZddlmZmZddlmZdZ	dZ
dZd	d
�Zdd�Z
d
d�ZGdd�de�ZeZdS)zUnittest main program�N�)�loader�runner)�installHandlerTaExamples:
  %(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
aFExamples:
  %(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
cCsxtj�|�rt|���d�rttj�|�rXtj�|t���}tj�|�sP|�tj	�rT|S|}|dd��
dd��
dd�S|S)Nz.pyi����z\�.z/)�os�pathZisfile�lowerZendswithZisabsZrelpathZgetcwdZ
startswithZpardirZreplace)�nameZrel_path�r
�%/usr/lib64/python3.8/unittest/main.py�
_convert_namesrcCsdd�|D�S)NcSsg|]}t|��qSr
)r)Z.0r	r
r
rZ
<listcomp>.sz"_convert_names.<locals>.<listcomp>r
)Znamesr
r
r�_convert_names-sr
cCsd|krd|}|S)N�*z*%s*r
)�patternr
r
r�_convert_select_pattern1src@s�eZdZdZdZdZdZZZZ	Z
ZdZdddde
jddddddfdd�dd	�Zdd
d�Zdd
�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Cs�t|t�r<t|�|_|�d�dd�D]}
t|j|
�|_q&n||_|dkrPtj}||_||_	|	|_
||_|
|_||_
|dkr�tjs�d|_n||_||_||_||_tj�|d�|_|�|�|��dS)Nrr�defaultr)�
isinstance�strZ
__import__�moduleZsplitZgetattr�sys�argv�exit�failfast�
catchbreak�	verbosity�bufferrZwarnoptions�warnings�defaultTest�
testRunner�
testLoaderrrZbasename�progName�	parseArgs�runTests)�selfrr rr!r"rrrrrrrZpartr
r
r�__init__As,


zTestProgram.__init__cCs4|rt|�|jdkr|��|��t�d�dS)N�)�print�_discovery_parser�_initArgParsers�_print_helprr)r&Zmsgr
r
r�	usageExitgs
zTestProgram.usageExitcOsZ|jdkr6t|j���ttd|ji�|j��n t|j���ttd|ji�dS)N�prog)	rr)�_main_parserZformat_help�
MAIN_EXAMPLESr#r*�
print_help�MODULE_EXAMPLES)r&ZargsZkwargsr
r
rr,os
zTestProgram._print_helpcCs�|��|jdkrpt|�dkrD|d��dkrD|�|dd��dS|j�|dd�|�|js�|�g�dSn|j�|dd�|�|jr�t|j�|_	t
dkr�d|_n6|jdkr�d|_	n$t|jt
�r�|jf|_	nt|j�|_	|��dS)Nr�discoverr(r)r+rZlenr�
_do_discoveryr/�
parse_args�testsr
�	testNames�__name__r rrZlist�createTests)r&rr
r
rr$xs(


zTestProgram.parseArgscCst|jr|j|j_|r@|dkr"|jn|�}|�|j|j|j�|_n0|jdkr\|j�|j	�|_n|j�
|j|j	�|_dS�N)�testNamePatternsr"r3�startr�top�testr7ZloadTestsFromModulerZloadTestsFromNames)r&�from_discovery�Loaderrr
r
rr9�s


�zTestProgram.createTestscCs$|��}|�|�|_|�|�|_dSr:)�_getParentArgParser�_getMainArgParserr/�_getDiscoveryArgParserr*)r&Z
parent_parserr
r
rr+�szTestProgram._initArgParserscCs�tjdd�}|jddddddd	�|jd
ddddd
d	�|jddddd�|jdkrn|jdddddd�d|_|jdkr�|jdddddd�d|_|jdkr�|jdddddd�d|_|jdkr�|jdd d!td"d#�g|_|S)$NF)Zadd_helpz-vz	--verboserZstore_constr(zVerbose output)�dest�actionZconst�helpz-qz--quietrzQuiet outputz--localsrZ
store_truez"Show local variables in tracebacks)rDrErFz-fz
--failfastrzStop on first fail or errorz-cz--catchrz'Catch Ctrl-C and display results so farz-bz--bufferrz%Buffer stdout and stderr during testsz-kr;Zappendz.Only run tests which match the given substring)rDrE�typerF)�argparse�ArgumentParser�add_argumentrrrr;r)r&�parserr
r
rrA�sR
�
��

�

�

�
�zTestProgram._getParentArgParsercCs2tj|gd�}|j|_|j|_|jdddd�|S)N�Zparentsr6rz?a list of any number of test modules, classes and test methods.)�nargsrF)rHrIr#r.r,r1rJ)r&�parentrKr
r
rrB�s�zTestProgram._getMainArgParsercCsztj|gd�}d|j|_d|_|jddddd�|jd	d
ddd�|jd
dddd�dD]}|j|dtjtjd�qZ|S)NrLz%s discoverzcFor test discovery all test modules must be importable from the top level directory of the project.z-sz--start-directoryr<z*Directory to start discovery ('.' default))rDrFz-pz	--patternrz+Pattern to match tests ('test*.py' default)z-tz--top-level-directoryr=z<Top level directory of project (defaults to start directory))r<rr=z?)rMrrF)rHrIr#r.ZepilogrJZSUPPRESS)r&rNrKZargr
r
rrC�s$
�
�
��z"TestProgram._getDiscoveryArgParsercCsLd|_d|_d|_|dk	r:|jdkr,|��|j�||�|jd|d�dS)Nrztest*.pyT)r?r@)r<rr=r*r+r5r9)r&rr@r
r
rr4�s
zTestProgram._do_discoveryc	Cs�|jrt�|jdkrtj|_t|jt�r�zVz"|j|j|j|j	|j
|jd�}Wn.tk
r||j|j|j|j	|j
d�}YnXWq�tk
r�|��}Yq�Xn|j}|�
|j�|_|jr�t�|j���dS)N)rrrrr)rrrr)rrr!rZTextTestRunnerrrGrrrrrZ	TypeErrorZrunr>ZresultrrZ
wasSuccessful)r&r!r
r
rr%�s2
�
�zTestProgram.runTestsr:)FNr:)r8Z
__module__Z__qualname__�__doc__rrrrrr#rr;r*rZdefaultTestLoaderr'r-r,r$r9r+rArBrCr4r%r
r
r
rr7s6��&
	
#

r)rOrrHrZrrZsignalsrZ
__unittestr0r2rr
rZobjectrZmainr
r
r
rZ<module>s	]