Your IP : 3.15.225.188


Current Path : /lib64/python3.8/unittest/__pycache__/
Upload File :
Current File : //lib64/python3.8/unittest/__pycache__/loader.cpython-38.opt-2.pyc

U

e5d�X�@sddlZddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Z
mZmZdZ
e�dej�ZGdd�de
j�Zd	d
�Zdd�Zd
d�Zdd�Zdd�ZGdd�de�Ze�Zddd�Zejdfdd�Zdejejfdd�Zdejejfdd�Z dS)�N)�fnmatch�fnmatchcase�)�case�suite�utilTz[_a-z]\w*\.py$cs,eZdZdZ�fdd�Z�fdd�Z�ZS)�_FailedTestNcs||_tt|��|�dS�N)�
_exception�superr�__init__)�selfZmethod_name�	exception��	__class__��'/usr/lib64/python3.8/unittest/loader.pyrsz_FailedTest.__init__cs*|�jkrtt���|�S�fdd�}|S)Ncs
�j�dSr	)r
r�r
rr�testFailure!sz,_FailedTest.__getattr__.<locals>.testFailure)�_testMethodNamerr�__getattr__)r
�namerrrrrs
z_FailedTest.__getattr__)�__name__�
__module__�__qualname__rrr�
__classcell__rrrrrsrcCs"d|t��f}t|t|�||�S)Nz#Failed to import test module: %s
%s)�	traceback�
format_exc�_make_failed_test�ImportError)r�
suiteClass�messagerrr�_make_failed_import_test&s
�r"cCsdt��f}t||||�S)NzFailed to call load_tests:
%s)rrr)rrr r!rrr�_make_failed_load_tests+s�r#cCst||�}||f�|fSr	)r)�
methodnamerr r!�testrrrr0s
rcCs<t�t|��dd��}||i}tdtjf|�}|||�f�S)NcSsdSr	rrrrr�testSkipped5sz'_make_skipped_test.<locals>.testSkippedZ
ModuleSkipped)r�skip�str�type�TestCase)r$rr r&�attrsZ	TestClassrrr�_make_skipped_test4s

r,cCs*|���d�r|dd�Stj�|�dS)Nz	$py.classi����r)�lower�endswith�os�path�splitext)r0rrr�_jython_aware_splitext<sr2cs�eZdZdZeej�ZdZe	j
ZdZ�fdd�Z
dd�Zdd�dd	�Zd d
d�Zd!dd
�Zdd�Zd"dd�Zdd�Zdd�Zdd�Zdd�Zd#dd�Zd$dd�Z�ZS)%�
TestLoaderr%Ncs tt|���g|_t�|_dSr	)rr3r�errors�set�_loading_packagesrrrrrMszTestLoader.__init__cCsFt|tj�rtd��|�|�}|s2t|d�r2dg}|�t||��}|S)NzYTest cases should not be derived from TestSuite. Maybe you meant to derive from TestCase?ZrunTest)�
issubclassr�	TestSuite�	TypeError�getTestCaseNames�hasattrr �map)r
�
testCaseClassZ
testCaseNamesZloaded_suiterrr�loadTestsFromTestCaseTs
z TestLoader.loadTestsFromTestCase��patternc

Os:t|�dksd|kr,t�dt�|�dd�t|�dkrRt|�d}td�|���t|�dkrxt|�d}td�|���g}t|�D]4}t	||�}t
|t�r�t|t
j�r�|�|�|��q�t	|dd�}	|�|�}|	dk	�r6z|	|||�WStk
�r4}
z,t|j|
|j�\}}|j�|�|WY�Sd}
~
XYnX|S)NrZuse_load_testsz(use_load_tests is deprecated and ignoredrzCloadTestsFromModule() takes 1 positional argument but {} were givenz=loadTestsFromModule() got an unexpected keyword argument '{}'�
load_tests)�len�warnings�warn�DeprecationWarning�popr9�format�sorted�dir�getattr�
isinstancer)r7rr*�appendr>r �	Exceptionr#rr4)
r
�moduler@�argsZkwsZ	complaint�testsr�objrA�e�
error_case�
error_messagerrr�loadTestsFromModulebs<�


�zTestLoader.loadTestsFromModulecCsX|�d�}d\}}|dkr�|dd�}|r�zd�|�}t|�}Wq�Wq&tk
r�|��}t||j�\}}|s�|j�|�|YSYq&Xq&|dd�}|}	|D]�}
z|	t	|	|
�}}	Wq�t
k
�rN}zvt	|	dd�dk	�r|dk	�r|j�|�|WY�DSt|
||jdt�
�f�\}}|j�|�|WY�
SW5d}~XYq�Xq�t|	tj��rj|�|	�St|	t��r�t|	tj��r�|�|	�St|	tj��r�t|t��r�t|tj��r�|d}||�}
tt	|
|�tj��s�|�|
g�Snt|	tj��r�|	St|	��rH|	�}t|tj��r|St|tj��r6|�|g�Std|	|f��ntd|	��dS)	N�.)NNr�__path__zFailed to access attribute:
%s���z"calling %s returned %s, not a testz$don't know how to make test from: %s)�split�join�
__import__rrFr"r r4rLrJ�AttributeErrorrrrrK�types�
ModuleTyperUr)r7rr*r>�FunctionTyperr8�callabler9)r
rrN�partsrSrTZ
parts_copy�module_nameZnext_attributerQ�part�parentrR�instr%rrr�loadTestsFromName�s�	

����$

�
�
�zTestLoader.loadTestsFromNamecs��fdd�|D�}��|�S)Ncsg|]}��|���qSr)rf)�.0r�rNr
rr�
<listcomp>�sz1TestLoader.loadTestsFromNames.<locals>.<listcomp>)r )r
�namesrNZsuitesrrhr�loadTestsFromNames�szTestLoader.loadTestsFromNamescs>��fdd�}tt|t����}�jr:|jt��j�d�|S)NcsZ|��j�sdSt�|�}t|�s&dSd�j�j|f��jdkpXt�fdd��jD��S)NFz%s.%s.%sc3s|]}t�|�VqdSr	)r)rgr@�ZfullNamerr�	<genexpr>�szKTestLoader.getTestCaseNames.<locals>.shouldIncludeMethod.<locals>.<genexpr>)�
startswith�testMethodPrefixrJr`rr�testNamePatterns�any)�attrnameZtestFunc�r
r=rlr�shouldIncludeMethod�s
�
�z8TestLoader.getTestCaseNames.<locals>.shouldIncludeMethod)�key)�list�filterrI�sortTestMethodsUsing�sort�	functools�
cmp_to_key)r
r=rtZtestFnNamesrrsrr:�s
zTestLoader.getTestCaseNames�test*.pycCsJd}|dkr|jdk	r|j}n|dkr.d}|}tj�|�}|tjkrRtj�d|�||_d}d}g}tj�tj�|��r�tj�|�}||kr�tj�tj�|d��}�npzt	|�Wnt
k
r�d}Y�nJXtj|}|�d�d}	ztj�tj�
|j��}Wn�tk
�r�z
|j}
Wntk
�r8d}
YnX|
�r�|
jdk�r�|
jdk	�r�d}|jD]P}|�s||�|��s|�qb|�|j�dtjj��d|_|�|j||dd���qbn*|jtjk�r�td�d�ntd�|��d�YnX|�r|�s|�|	�|_tj�|�ntj�|�|�r*t
d	|��|�s@t|�||��}|� |�S)
NFTr�__init__.pyrV)�	namespacez2Can not use builtin modules as dotted module namesz$don't know how to discover from {!r}z%Start directory is not importable: %r)!�_top_level_dirr/r0�abspath�sys�insert�isdir�isfilerZr[r�modulesrY�dirname�__file__r\�__spec__�loader�submodule_search_locationsrWrnr�replace�sep�extend�_find_tests�builtin_module_namesr9rG� _get_directory_containing_module�removervr )r
�	start_dirr@Z
top_level_dirZset_implicit_topZis_not_importable�is_namespacerPZ
the_moduleZtop_part�specr0rrr�discover�s�

�


�
���
������zTestLoader.discovercCsRtj|}tj�|j�}tj�|����d�rBtj�	tj�	|��Stj�	|�SdS)Nr})
r�r�r/r0r�r��basenamer-rnr�)r
rbrN�	full_pathrrrr�`s

z+TestLoader._get_directory_containing_modulecCsB||jkrdSttj�|��}tj�||j�}|�tjjd�}|S�NrV)rr2r/r0�normpath�relpathr�r�)r
r0Z_relpathrrrr�_get_name_from_pathls
zTestLoader._get_name_from_pathcCst|�tj|Sr	)r[r�r�)r
rrrr�_get_module_from_namexsz TestLoader._get_module_from_namecCs
t||�Sr	)r)r
r0r�r@rrr�_match_path|szTestLoader._match_pathFc

cs�|�|�}|dkrD||jkrD|�|||�\}}|dk	r<|V|sDdStt�|��}|D]t}tj�||�}	|�|	||�\}}|dk	r�|V|rV|�|	�}|j�|�z|�
|	||�EdHW5|j�	|�XqVdSr�)r�r6�_find_test_pathrHr/�listdirr0rZ�add�discardr�)
r
r�r@r~rrPZshould_recurse�pathsr0r�rrrr��s6
��
zTestLoader._find_testsc
Csttj�|�}tj�|��rVt�|�s(dS|�|||�s:dS|�|�}z|�|�}Wnht	j
k
r�}zt|||j�dfWY�Sd}~XYn�t
||j�\}}	|j�|	�|dfYSXtj�t|d|��}
ttj�|
��}ttj�|��}|��|��k�r@tj�|�}
ttj�|��}tj�|�}d}t|||
|f��|j||d�dfS�ntj�|��rl|�s�tj�tj�|d���s�dSd}d}|�|�}z|�|�}Wnjt	j
k
�r�}zt|||j�dfWY�Sd}~XYn�t
||j�\}}	|j�|	�|dfYSXt|dd�}|j�|�z0|j||d�}|dk	�rP|dfW�S|dfW�S|j�|�XndSdS)	N)NFFr�zW%r module incorrectly imported from %r. Expected %r. Is this module globally installed?r?r}rAT)r/r0r�r��VALID_MODULE_NAME�matchr�r�r�rZSkipTestr,r r"r4rLr�rJr2�realpathr-r�rrUr�rZr6r�r�)r
r�r@r~r�rrNrRrSrTZmod_filer�Zfullpath_noextZ
module_dirZmod_nameZexpected_dir�msgrArP�packagerrrr��s|

&
�
�
�
�
���
&
�
zTestLoader._find_test_path)N)N)r|N)F)F)rrrro�staticmethodr�
three_way_cmprxrprr8r rrr>rUrfrkr:r�r�r�r�r�r�r�rrrrrr3Bs$
(
N

n
"r3cCs&t�}||_||_||_|r"||_|Sr	)r3rxrorpr )�prefix�	sortUsingr rpr�rrr�_makeLoader�sr�cCst|||d��|�S)N)rp)r�r:)r=r�r�rprrrr:�sr:r%cCst|||��|�Sr	)r�r>)r=r�r�r rrr�	makeSuite�s�r�cCst|||��|�Sr	)r�rU)rNr�r�r rrr�
findTestCasess�r�)NN)!r/�rer�rr]rzrCrr�rrrZ
__unittest�compile�
IGNORECASEr�r*rr"r#rr,r2�objectr3ZdefaultTestLoaderr�r�r:r8r�r�rrrr�<module>s:/
	�
�

?>