Spade
Mini Shell
| Directory:~$ /lib64/python3.6/unittest/__pycache__/ |
| [Home] [System Details] [Kill Me] |
3
\�V�@sdZddlZddlZddlZddlZddlZddlZddlZddlmZddl m
Z
mZmZdZ
ejdej�ZGdd �d e
j�Zd
d�Zdd
�Zdd�Zdd�Zdd�ZGdd�de�Ze�Zddd�Zejfdd�Zdejejfdd�Zdejejfdd�Z
dS) zLoading
unittests.�N)�fnmatch�)�case�suite�utilTz[_a-z]\w*\.py$cs,eZdZdZ�fdd�Z�fdd�Z�ZS)�_FailedTestNcs||_tt|�j|�dS)N)�
_exception�superr�__init__)�selfZmethod_name� exception)� __class__��/usr/lib64/python3.6/loader.pyr
sz_FailedTest.__init__cs*|�jkrtt��j|�S�fdd�}|S)Ncs
�j�dS)N)rr)rrr�testFailure!sz,_FailedTest.__getattr__.<locals>.testFailure)�_testMethodNamer r�__getattr__)r�namer)r
)rrrs
z_FailedTest.__getattr__)�__name__�
__module__�__qualname__rr
r�
__classcell__rr)r
rrsrcCs"d|tj�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&srcCsdtj�f}t||||�S)NzFailed
to call load_tests:
%s)rrr)rrrrrrr�_make_failed_load_tests+srcCst||�}||f�|fS)N)r)�
methodnamerrr�testrrrr0s
rcCs<tjt|��dd��}||i}tdtjf|�}|||�f�S)NcSsdS)Nr)rrrr�testSkipped5sz'_make_skipped_test.<locals>.testSkippedZ
ModuleSkipped)r�skip�str�type�TestCase)r
rrr"ZattrsZ TestClassrrr�_make_skipped_test4sr'cCs*|j�jd�r|dd�Stjj|�dS)Nz $py.class� ri����)�lower�endswith�os�path�splitext)r,rrr�_jython_aware_splitext<sr.cs�eZdZdZdZeej�Ze j
ZdZ�fdd�Z
dd�Zdd�d d
�Zd!dd�Zd"d
d�Zdd�Zd#dd�Zdd�Zdd�Zdd�Zdd�Zd$dd�Zd%dd
�Z�ZS)&�
TestLoaderz�
This class is responsible for loading tests according to various
criteria
and returning them wrapped in a TestSuite
r!Ncs tt|�j�g|_t�|_dS)N)r r/r
�errors�set�_loading_packages)r)r
rrr
LszTestLoader.__init__cCsHt|tj�rtd��|j|�}|r4t|d�r4dg}|jt||��}|S)z;Return
a suite of all test cases contained in testCaseClasszYTest 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�loadTestsFromTestCaseSs
z
TestLoader.loadTestsFromTestCase)�patternc
Os2t|�dksd|kr,tjdt�|jdd�t|�dkrRt|�d}tdj|���t|�dkrxt|�d}tdj|���g}x@t|�D]4}t ||�}t
|t�r�t|t
j�r�|j|j|��q�Wt |dd�} |j|�}| dk �r.y| |||�Stk
�r,}
z$t|j|
|j�\}}|jj|�|Sd}
~
XnX|S) z>Return a suite of all test cases contained in the given
modulerZuse_load_testsz(use_load_tests is deprecated and
ignoredNrzCloadTestsFromModule() takes 1 positional argument but {} were
givenz=loadTestsFromModule() got an unexpected keyword argument
'{}'�
load_tests)�len�warnings�warn�DeprecationWarning�popr5�format�sorted�dir�getattr�
isinstancer%r3rr&�appendr:r� Exceptionrrr0)
r�moduler;�argsZkwsZ complaint�testsr�objr<�e�
error_case�
error_messagerrr�loadTestsFromModuleas4
zTestLoader.loadTestsFromModulecCs>|jd�}d\}}|dkr�|dd�}xb|r�ydj|�}t|�}PWq(tk
r�|j�}t||j�\}}|s�|jj|�|SYq(Xq(W|dd�}|} x�|D]�}
y| t | |
�}} Wq�t
k
�r2}z\t | dd�dk r�|dk r�|jj|�|St|
||jdtj
�f�\}}|jj|�|SWYdd}~Xq�Xq�Wt| tj��rP|j| �St| t��rtt| tj��rt|j| �St| tj��r�t|t��r�t|tj��r�|d }||�}
tt |
|�tj��s�|j|
g�Snt| tj��r�| St| ��r.| �}t|tj��r|St|tj��r|j|g�Std| |f��ntd| ��dS)
aSReturn a suite of all test cases given a string specifier.
The name may resolve either to a module, a test case class, a
test method within a test case class, or a callable object which
returns a TestCase or TestSuite instance.
The method optionally resolves the names relative to a given
module.
�.Nr�__path__zFailed to access attribute:
%sz"calling %s returned %s, not a testz$don't know how to make
test from: %s)NN���)�split�join�
__import__rrArrr0rGrE�AttributeErrorrrrrF�types�
ModuleTyperPr%r3rr&r:�FunctionTyperr4�callabler5)rrrI�partsrNrOZ
parts_copy�module_nameZnext_attributerL�part�parentrMZinstr!rrr�loadTestsFromName�sl
zTestLoader.loadTestsFromNamecs��fdd�|D�}�j|�S)z�Return
a suite of all test cases found using the given sequence
of string specifiers. See 'loadTestsFromName()'.
csg|]}�j|���qSr)r`)�.0r)rIrrr�
<listcomp>�sz1TestLoader.loadTestsFromNames.<locals>.<listcomp>)r)r�namesrIZsuitesr)rIrr�loadTestsFromNames�szTestLoader.loadTestsFromNamescCs@||jfdd�}tt|t|���}|jr<|jtj|j�d�|S)zLReturn
a sorted sequence of method names found within testCaseClass
cSs|j|�ott||��S)N)�
startswithr[rE)Zattrnamer9�prefixrrr�isTestMethod�s
z1TestLoader.getTestCaseNames.<locals>.isTestMethod)�key)�testMethodPrefix�list�filterrD�sortTestMethodsUsing�sort� functools�
cmp_to_key)rr9rgZtestFnNamesrrrr6�szTestLoader.getTestCaseNames�test*.pycCsRd}|dkr|jdk r|j}n|dkr.d}|}tjj|�}|tjkrRtjjd|�||_d}d}g}tjjtjj|��r�tjj|�}||kr�tjjtjj|d��}�nxyt |�Wnt
k
r�d}Y�nRXtj|}|jd�d} ytjjtjj
|j��}Wn�tk
�r�y
|j}
Wntk
�r8d}
YnX|
�r�|
jdk�r�|
jdk �r�d}x�|jD]T}|�r�|j|��r��qd|j|jjdtjj��d|_|j|j||dd���qdWn*|jtjk�r�td�d�ntd j|��d�YnX|�r
|�s|j| �|_tjj|�ntjj|�|�r2t
d
|��|�sHt|j||��}|j |�S)a%Find and return all
test modules from the specified start
directory, recursing into subdirectories to find them and return
all
tests found within them. Only test files that match the pattern
will
be loaded. (Using shell style pattern matching.)
All test modules must be importable from the top level of the
project.
If the start directory is not the top level directory then the top
level directory must be specified separately.
If a test package name (directory with '__init__.py')
matches the
pattern then the package will be checked for a
'load_tests' function. If
this exists then it will be called with (loader, tests, pattern)
unless
the package has already had load_tests called from the same
discovery
invocation, in which case the package module object is not scanned
for
tests - this ensures that when a package uses discover to further
discover child tests that infinite recursion does not happen.
If load_tests exists then discovery does *not* recurse into the
package,
load_tests is responsible for loading all tests in the package.
The pattern is deliberately not stored as a loader attribute so
that
packages can continue discovery themselves. top_level_dir is stored
so
load_tests does not need to pass this argument in to
loader.discover().
Paths are sorted before being imported to ensure reproducible
execution
order even on filesystems with non-alphabetical ordering like
ext3/4.
FNTrz__init__.pyrQ)� 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+r,�abspath�sys�insert�isdir�isfilerUrVr�modulesrT�dirname�__file__rW�__spec__�loader�submodule_search_locationsrRrer�replace�sep�extend�_find_tests�builtin_module_namesr5rB�
_get_directory_containing_module�removerjr)r� start_dirr;Z
top_level_dirZset_implicit_topZis_not_importable�is_namespacerKZ
the_moduleZtop_part�specr,rrr�discover�sv
zTestLoader.discovercCsRtj|}tjj|j�}tjj|�j�jd�rBtjj tjj |��Stjj |�SdS)Nz__init__.py)
rtrxr+r,rsrz�basenamer)rery)rr]rI� full_pathrrrr�Xs
z+TestLoader._get_directory_containing_modulecCsl||jkrdSttjj|��}tjj||j�}tjj|�sDtd��|jd�sXtd��|j tjj
d�}|S)NrQzPath must be within the
projectz..)rrr.r+r,�normpath�relpath�isabs�AssertionErrorrer~r)rr,Z_relpathrrrr�_get_name_from_pathds
zTestLoader._get_name_from_pathcCst|�tj|S)N)rVrtrx)rrrrr�_get_module_from_namepsz
TestLoader._get_module_from_namecCs
t||�S)N)r)rr,r�r;rrr�_match_pathtszTestLoader._match_pathFc
cs�|j|�}|dkrD||jkrD|j|||�\}}|dk r<|V|sDdSttj|��}x||D]t}tjj||�} |j| ||�\}}|dk r�|V|rX|j| �}|jj|�z|j | ||�EdHWd|jj
|�XqXWdS)z/Used by discovery. Yields test suites it
loads.rQN)r�r2�_find_test_pathrCr+�listdirr,rU�addr��discard)
rr�r;rqrrKZshould_recurse�pathsr,r�rrrr�xs*
zTestLoader._find_testscCsPtjj|�}tjj|��rFtj|�s(d S|j|||�s:d
S|j|�}y|j|�}WnXt j
k
r�}zt|||j�dfSd}~Xn�t
||j�\}} |jj| �|dfStjjt|d|��}
ttjj|
��}ttjj|��}|j�|j�k�r0tjj|�}
ttjj|��}tjj|�}d}t|||
|f��|j||d�dfS�ntjj|��rH|�rztjjtjj|d���rzdSd}d}|j|�}y|j|�}WnZt j
k
�r�}zt|||j�dfSd}~Xnzt
||j�\}} |jj| �|dfSt|dd�}|jj|�z(|j||d�}|dk �r0|dfS|dfS|jj|�XndSdS)
z�Used
by discovery.
Loads tests from a single file, or a directories' __init__.py
when
passed the directory.
Returns a tuple (None_or_tests_from_file, should_recurse).
NFrzzW%r module incorrectly imported from %r. Expected %r. Is this
module globally
installed?)r;z__init__.pyr<T)NF)NF)NF)NF)r+r,r�rw�VALID_MODULE_NAME�matchr�r�r�rZSkipTestr'rrr0rGrsrEr.�realpathr)ryrrPrvrUr2r�r�)rr�r;rqr�rrIrMrNrOZmod_filer�Zfullpath_noextZ
module_dirZmod_nameZexpected_dir�msgr<rK�packagerrrr��sl
zTestLoader._find_test_path)N)N)rpN)F)F)rrr�__doc__ri�staticmethodr�
three_way_cmprlrr4rrrr
r:rPr`rdr6r�r�r�r�r�r�r�rrr)r
rr/Bs$
(
N
n
"r/cCs
t�}||_||_|r||_|S)N)r/rlrir)rf� sortUsingrr|rrr�_makeLoader�sr�cCst||�j|�S)N)r�r6)r9rfr�rrrr6�sr6r!cCst|||�j|�S)N)r�r:)r9rfr�rrrr� makeSuite�sr�cCst|||�j|�S)N)r�rP)rIrfr�rrrr�
findTestCases�sr�)N)!r�r+�rertrrXrnr>r�rrrZ
__unittest�compile�
IGNORECASEr�r&rrrrr'r.�objectr/ZdefaultTestLoaderr�r�r6r4r�r�rrrr�<module>s8'