Your IP : 18.216.103.219
U
e5d�X�@sddlZddlZddlZddlZddlZddlZddlZddlmZmZddl m
Z
mZmZdZ
e�dej�ZGdd�de
j�Zd d
�Zdd�Zd
d�Zdd�Zdd�ZGdd�de�Ze�Zddd�Zejdfdd�Zdejejfdd�Zdejejfdd�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.pyrsz_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__rrr�
__classcell__rrrrrsrcCs"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<sr2cs�eZdZdZeej�ZdZe j
ZdZ�fdd�Z
dd�Zdd�dd �Zd d
d�Zd!dd
�Zdd�Zd"dd�Zdd�Zdd�Zdd�Zdd�Zd#dd�Zd$dd�Z�ZS)%�
TestLoaderr%Ncs tt|���g|_t�|_dSr )rr3r�errors�set�_loading_packagesrrrrrMszTestLoader.__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
testCaseNamesZloaded_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��ntd| ��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*.pycCsJd}|dkr|jdk r|j}n|dkr.d}|}tj�|�}|tjkrRtj�d|�||_d}d}g}tj�tj�|��r�tj�|�}||kr�tj�tj�|d��}�npzt |�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�|�ntj�|�|�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_nameZexpected_dir�msgrArP�packagerrrr��s|
&
�
�
�
�
���
&
�
zTestLoader._find_test_path)N)N)r|N)F)F)rrrro�staticmethodr�
three_way_cmprxrprr8r rrr>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:/
�
�
?>