509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3

  \ÐV  ã               @   sþ   d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ ddlm	Z	m
Z
mZ dZejdejƒZG dd„ de	jƒZd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZG dd„ deƒZeƒ Zddd„Zejfdd„Zdeje
jfdd„Zdeje
jfdd„ZdS )é    N)Úfnmatché   )ÚcaseÚsuiteÚutilTz[_a-z]\w*\.py$c                   s,   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡  ZS )Ú_FailedTestNc                s   || _ tt| ƒj|ƒ d S )N)Ú
_exceptionÚsuperr   Ú__init__)ÚselfZmethod_nameÚ	exception)Ú	__class__© ú'/usr/lib64/python3.6/unittest/loader.pyr
      s    z_FailedTest.__init__c                s*   |ˆ j krttˆ ƒj|ƒS ‡ fdd„}|S )Nc                  s
   ˆ j ‚d S )N)r   r   )r   r   r   ÚtestFailure!   s    z,_FailedTest.__getattr__.<locals>.testFailure)Ú_testMethodNamer	   r   Ú__getattr__)r   Únamer   )r   )r   r   r      s    
z_FailedTest.__getattr__)Ú__name__Ú
__module__Ú__qualname__r   r
   r   Ú__classcell__r   r   )r   r   r      s   r   c             C   s"   d| t jƒ f }t| t|ƒ||ƒS )Nz#Failed to import test module: %s
%s)Ú	tracebackÚ
format_excÚ_make_failed_testÚImportError)r   Ú
suiteClassÚmessager   r   r   Ú_make_failed_import_test&   s    r   c             C   s   dt jƒ f }t| |||ƒS )NzFailed to call load_tests:
%s)r   r   r   )r   r   r   r   r   r   r   Ú_make_failed_load_tests+   s    r   c             C   s   t | |ƒ}||fƒ|fS )N)r   )Ú
methodnamer   r   r   Útestr   r   r   r   0   s    
r   c             C   s<   t jt|ƒƒdd„ ƒ}| |i}tdt jf|ƒ}||| ƒfƒS )Nc             S   s   d S )Nr   )r   r   r   r   ÚtestSkipped5   s    z'_make_skipped_test.<locals>.testSkippedZModuleSkipped)r   ÚskipÚstrÚtypeÚTestCase)r    r   r   r"   ZattrsZ	TestClassr   r   r   Ú_make_skipped_test4   s    r'   c             C   s*   | j ƒ jdƒr| d d… S tjj| ƒd S )Nz	$py.classé	   r   i÷ÿÿÿ)ÚlowerÚendswithÚosÚpathÚsplitext)r,   r   r   r   Ú_jython_aware_splitext<   s    r.   c                   s¤   e Zd ZdZeejƒZej	Z
dZ‡ fdd„Zdd„ Zddœdd	„Zd d
d„Zd!dd„Zdd„ Zd"dd„Zdd„ Zdd„ Zdd„ Zdd„ Zd#dd„Zd$dd„Z‡  ZS )%Ú
TestLoaderr!   Nc                s    t t| ƒjƒ  g | _tƒ | _d S )N)r	   r/   r
   ÚerrorsÚsetÚ_loading_packages)r   )r   r   r   r
   L   s    zTestLoader.__init__c             C   sH   t |tjƒrtdƒ‚| j|ƒ}| r4t|dƒr4dg}| jt||ƒƒ}|S )NzYTest cases should not be derived from TestSuite. Maybe you meant to derive from TestCase?ZrunTest)Ú
issubclassr   Ú	TestSuiteÚ	TypeErrorÚgetTestCaseNamesÚhasattrr   Úmap)r   ÚtestCaseClassZtestCaseNamesZloaded_suiter   r   r   ÚloadTestsFromTestCaseS   s    
z TestLoader.loadTestsFromTestCase)Úpatternc            O   s2  t |ƒdksd|kr,tjdtƒ |jdd ƒ t |ƒdkrRt |ƒd }tdj|ƒƒ‚t |ƒdkrxt|ƒd }tdj|ƒƒ‚g }x@t|ƒD ]4}t	||ƒ}t
|tƒr†t|tjƒr†|j| j|ƒƒ q†W t	|dd ƒ}	| j|ƒ}|	d k	�r.y|	| ||ƒS  tk
�r, }
 z$t|j|
| jƒ\}}| jj|ƒ |S d }
~
X nX |S )Nr   Zuse_load_testsz(use_load_tests is deprecated and ignoredr   zCloadTestsFromModule() 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%   r3   r   r&   Úappendr:   r   Ú	Exceptionr   r   r0   )r   Úmoduler;   ÚargsZkwsZ	complaintÚtestsr   Úobjr<   ÚeÚ
error_caseÚerror_messager   r   r   ÚloadTestsFromModulea   s4    


zTestLoader.loadTestsFromModulec             C   s>  |j dƒ}d\}}|d kr–|d d … }xb|rˆydj|ƒ}t|ƒ}P W q( tk
r„   |jƒ }t|| jƒ\}}|s€| jj|ƒ |S Y q(X q(W |dd … }|}	xœ|D ]”}
y|	t	|	|
ƒ }}	W q  t
k
�r2 } z\t	|	dd ƒd k	rô|d k	rô| jj|ƒ |S t|
|| jdtjƒ f ƒ\}}| jj|ƒ |S W Y d d }~X q X q W t|	tjƒ�rP| j|	ƒS t|	tƒ�rtt|	tjƒ�rt| j|	ƒS t|	tjƒ�rÎt|tƒ�rÎt|tjƒ�rÎ|d }||ƒ}tt	||ƒtjƒ�sà| j|gƒS nt|	tjƒ�rà|	S t|	ƒ�r.|	ƒ }t|tjƒ�r|S t|tjƒ�r| j|gƒS td|	|f ƒ‚ntd|	 ƒ‚d S )	NÚ.r   Ú__path__zFailed to access attribute:
%sz"calling %s returned %s, not a testz$don't know how to make test from: %s)NNéÿÿÿÿ)ÚsplitÚjoinÚ
__import__r   rA   r   r   r0   rG   rE   ÚAttributeErrorr   r   r   rF   ÚtypesÚ
ModuleTyperP   r%   r3   r   r&   r:   ÚFunctionTyper   r4   Úcallabler5   )r   r   rI   ÚpartsrN   rO   Z
parts_copyÚmodule_nameZnext_attributerL   ÚpartÚparentrM   Zinstr!   r   r   r   ÚloadTestsFromName‰   sl    	





zTestLoader.loadTestsFromNamec                s   ‡ ‡fdd„|D ƒ}ˆj |ƒS )Nc                s   g | ]}ˆj |ˆ ƒ‘qS r   )r`   )Ú.0r   )rI   r   r   r   ú
<listcomp>Û   s    z1TestLoader.loadTestsFromNames.<locals>.<listcomp>)r   )r   ÚnamesrI   Zsuitesr   )rI   r   r   ÚloadTestsFromNames×   s    zTestLoader.loadTestsFromNamesc             C   s@   || j fdd„}tt|t|ƒƒƒ}| jr<|jtj| jƒd� |S )Nc             S   s   | j |ƒott|| ƒƒS )N)Ú
startswithr[   rE   )Zattrnamer9   Úprefixr   r   r   ÚisTestMethodá   s    
z1TestLoader.getTestCaseNames.<locals>.isTestMethod)Úkey)ÚtestMethodPrefixÚlistÚfilterrD   ÚsortTestMethodsUsingÚsortÚ	functoolsÚ
cmp_to_key)r   r9   rg   ZtestFnNamesr   r   r   r6   Þ   s    zTestLoader.getTestCaseNamesútest*.pyc             C   sR  d}|d kr| j d k	r| j }n|d kr.d}|}tjj|ƒ}|tjkrRtjjd|ƒ || _ d}d}g }tjjtjj|ƒƒr¨tjj|ƒ}||kr¤tjjtjj|dƒƒ }�nxyt	|ƒ W n t
k
rÎ   d}Y �nRX tj| }|jdƒd }	ytjjtjj|jƒƒ}W nê tk
�rì   y
|j}
W n tk
�r8   d }
Y nX |
�r¾|
jd k�r¾|
jd k	�rèd}xŠ|jD ]T}| �r‚|j|ƒ �r‚�qd|j|jjdtjjƒƒd | _ |j| j||dd�ƒ �qdW n*|jtjk�rØtdƒd ‚ntdj|ƒƒd ‚Y nX |�r |�s| j|	ƒ| _ tjj|ƒ ntjj|ƒ |�r2t
d	| ƒ‚|�sHt| j||ƒƒ}| j |ƒS )
NFTr   z__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ÚisfilerU   rV   r   ÚmodulesrT   ÚdirnameÚ__file__rW   Ú__spec__ÚloaderÚsubmodule_search_locationsrR   re   r   ÚreplaceÚsepÚextendÚ_find_testsÚbuiltin_module_namesr5   rB   Ú _get_directory_containing_moduleÚremoverj   r   )r   Ú	start_dirr;   Ztop_level_dirZset_implicit_topZis_not_importableÚis_namespacerK   Z
the_moduleZtop_partÚspecr,   r   r   r   Údiscoverê   sv    





zTestLoader.discoverc             C   sR   t j| }tjj|jƒ}tjj|ƒjƒ jdƒrBtjj	tjj	|ƒƒS tjj	|ƒS d S )Nz__init__.py)
rt   rx   r+   r,   rs   rz   Úbasenamer)   re   ry   )r   r]   rI   Ú	full_pathr   r   r   rƒ   X  s
    
z+TestLoader._get_directory_containing_modulec             C   sB   || j krdS ttjj|ƒƒ}tjj|| j ƒ}|jtjjdƒ}|S )NrQ   )rr   r.   r+   r,   ÚnormpathÚrelpathr~   r   )r   r,   Z_relpathr   r   r   r   Ú_get_name_from_pathd  s    
zTestLoader._get_name_from_pathc             C   s   t |ƒ tj| S )N)rV   rt   rx   )r   r   r   r   r   Ú_get_module_from_namep  s    z TestLoader._get_module_from_namec             C   s
   t ||ƒS )N)r   )r   r,   rŠ   r;   r   r   r   Ú_match_patht  s    zTestLoader._match_pathFc       
      c   sÔ   | j |ƒ}|dkrD|| jkrD| j|||ƒ\}}|d k	r<|V  |sDd S ttj|ƒƒ}x||D ]t}tjj||ƒ}	| j|	||ƒ\}}|d k	rŠ|V  |rX| j |	ƒ}| jj|ƒ z| j	|	||ƒE d H  W d | jj
|ƒ X qXW d S )NrQ   )r�   r2   Ú_find_test_pathrC   r+   Úlistdirr,   rU   Úaddr�   Údiscard)
r   r…   r;   rq   r   rK   Zshould_recurseÚpathsr,   rŠ   r   r   r   r�   x  s*    


zTestLoader._find_testsc             C   sP  t jj|ƒ}t jj|ƒ�rFtj|ƒs(dS | j|||ƒs:d	S | j|ƒ}y| j|ƒ}W nX t	j
k
r‚ } zt||| jƒdfS d }~X nÀ   t|| jƒ\}}	| jj|	ƒ |dfS t jjt|d|ƒƒ}
tt jj|
ƒƒ}tt jj|ƒƒ}|jƒ |jƒ k�r0t jj|ƒ}tt jj|ƒƒ}t jj|ƒ}d}t||||f ƒ‚| j||d�dfS �nt jj|ƒ�rH| �rzt jjt jj|dƒƒ �rzd
S d }d }| j|ƒ}y| j|ƒ}W nZ t	j
k
�rÌ } zt||| jƒdfS d }~X nz   t|| jƒ\}}	| jj|	ƒ |dfS t|dd ƒ}| jj|ƒ z(| j||d�}|d k	�r0|dfS |dfS | jj|ƒ X ndS d S )NFrz   zW%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Ž   r   ZSkipTestr'   r   r   r0   rG   rs   rE   r.   Úrealpathr)   ry   r   rP   rv   rU   r2   r’   r“   )r   rŠ   r;   rq   r‰   r   rI   rM   rN   rO   Zmod_filer—   Zfullpath_noextZ
module_dirZmod_nameZexpected_dirÚmsgr<   rK   Úpackager   r   r   r�   š  sl    



zTestLoader._find_test_path)N)N)rp   N)F)F)r   r   r   ri   Ústaticmethodr   Úthree_way_cmprl   r   r4   r   rr   r
   r:   rP   r`   rd   r6   rˆ   rƒ   r�   rŽ   r�   r�   r�   r   r   r   )r   r   r/   B   s"   
(
N

n
"r/   c             C   s    t ƒ }||_| |_|r||_|S )N)r/   rl   ri   r   )rf   Ú	sortUsingr   r|   r   r   r   Ú_makeLoaderé  s    r�   c             C   s   t ||ƒj| ƒS )N)r�   r6   )r9   rf   rœ   r   r   r   r6   ñ  s    r6   r!   c             C   s   t |||ƒj| ƒS )N)r�   r:   )r9   rf   rœ   r   r   r   r   Ú	makeSuiteô  s    rž   c             C   s   t |||ƒj| ƒS )N)r�   rP   )rI   rf   rœ   r   r   r   r   ÚfindTestCasesù  s    rŸ   )N) r+   Úrert   r   rX   rn   r>   r   Ú r   r   r   Z
__unittestÚcompileÚ
IGNORECASEr•   r&   r   r   r   r   r'   r.   Úobjectr/   ZdefaultTestLoaderr�   r›   r6   r4   rž   rŸ   r   r   r   r   Ú<module>   s6      '
