
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a®X  ã                   @   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mZ ddl	m
Z
mZmZ dZe 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d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Úfnmatchcaseé   )Ú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| ƒ |¡ d S ©N)Ú
_exceptionÚsuperr   Ú__init__)ÚselfZmethod_nameÚ	exception©Ú	__class__© ú4/opt/alt/python38/lib64/python3.8/unittest/loader.pyr      s    z_FailedTest.__init__c                    s*   |ˆ j krttˆ ƒ |¡S ‡ fdd„}|S )Nc                      s
   ˆ j ‚d S r	   )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  ¡ 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  ¡ 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 r	   )r   )Ú
methodnamer   r    r!   Útestr   r   r   r   0   s    
r   c                 C   s<   t  t|ƒ¡dd„ ƒ}| |i}tdt jf|ƒ}||| ƒfƒS )Nc                 S   s   d S r	   r   r   r   r   r   ÚtestSkipped5   s    z'_make_skipped_test.<locals>.testSkippedZModuleSkipped)r   ÚskipÚstrÚtypeÚTestCase)r$   r   r    r&   ÚattrsZ	TestClassr   r   r   Ú_make_skipped_test4   s
    
r,   c                 C   s*   |   ¡  d¡r| d d… S tj | ¡d S )Nz	$py.classi÷ÿÿÿr   )ÚlowerÚendswithÚosÚpathÚsplitext)r0   r   r   r   Ú_jython_aware_splitext<   s    r2   c                       s¨   e Zd ZdZeejƒZd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| ƒ ¡  g | _tƒ | _d S r	   )r   r3   r   ÚerrorsÚsetÚ_loading_packagesr   r   r   r   r   M   s    zTestLoader.__init__c                 C   sF   t |tjƒrtdƒ‚|  |¡}|s2t|dƒr2dg}|  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   ÚloadTestsFromTestCaseT   s    
z TestLoader.loadTestsFromTestCase©Úpatternc             
   O   s:  t |ƒdksd|kr,t dt¡ | dd ¡ t |ƒdkrRt |ƒd }td |¡ƒ‚t |ƒdkrxt|ƒd }td |¡ƒ‚g }t|ƒD ]4}t	||ƒ}t
|tƒr„t|tjƒr„| |  |¡¡ q„t	|dd ƒ}	|  |¡}|	d k	�r6z|	| ||ƒW S  tk
�r4 }
 z,t|j|
| jƒ\}}| j |¡ | W Y ¢S d }
~
X Y 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Úpopr9   ÚformatÚsortedÚdirÚgetattrÚ
isinstancer)   r7   r   r*   Úappendr>   r    Ú	Exceptionr#   r   r4   )r   Úmoduler@   ÚargsZkwsZ	complaintÚtestsr   ÚobjrA   ÚeÚ
error_caseÚerror_messager   r   r   ÚloadTestsFromModuleb   s<    ÿ


  ÿzTestLoader.loadTestsFromModulec                 C   sX  |  d¡}d\}}|d kr˜|d d … }|rŒzd |¡}t|ƒ}W qŒW q& tk
rˆ   | ¡ }t|| jƒ\}}|s„| j |¡ | Y S Y q&X q&|dd … }|}	|D ]°}
z|	t	|	|
ƒ }}	W q  t
k
�rN } zvt	|	dd ƒd k	�r|d k	�r| j |¡ | W Y ¢D  S t|
|| jdt ¡ f ƒ\}}| j |¡ | W Y ¢
  S W 5 d }~X Y q X q t|	tjƒ�rj|  |	¡S t|	tƒ�rŽt|	tjƒ�rŽ|  |	¡S t|	tjƒ�rèt|tƒ�rèt|tjƒ�rè|d }||ƒ}tt	||ƒtjƒ�sú|  |g¡S nt|	tjƒ�rú|	S t|	ƒ�rH|	ƒ }t|tjƒ�r|S t|tjƒ�r6|  |g¡S td|	|f ƒ‚ntd|	 ƒ‚d S )	NÚ.)NNr   Ú__path__zFailed to access attribute:
%séÿÿÿÿz"calling %s returned %s, not a testz$don't know how to make test from: %s)ÚsplitÚjoinÚ
__import__r   rF   r"   r    r4   rL   rJ   ÚAttributeErrorr   r   r   rK   ÚtypesÚ
ModuleTyperU   r)   r7   r   r*   r>   ÚFunctionTyper   r8   Úcallabler9   )r   r   rN   ÚpartsrS   rT   Z
parts_copyÚmodule_nameZnext_attributerQ   ÚpartÚparentrR   Úinstr%   r   r   r   ÚloadTestsFromNameŠ   s€    	

 ÿÿ  ÿþ$

ÿ
þ
ÿzTestLoader.loadTestsFromNamec                    s   ‡ ‡fdd„|D ƒ}ˆ  |¡S )Nc                    s   g | ]}ˆ  |ˆ ¡‘qS r   )rf   )Ú.0r   ©rN   r   r   r   Ú
<listcomp>Ü   s     z1TestLoader.loadTestsFromNames.<locals>.<listcomp>)r    )r   ÚnamesrN   Zsuitesr   rh   r   ÚloadTestsFromNamesØ   s    zTestLoader.loadTestsFromNamesc                    s>   ‡ ‡fdd„}t t|tˆƒƒƒ}ˆ jr:|jt ˆ j¡d� |S )Nc                    sZ   |   ˆj¡sdS tˆ| ƒ}t|ƒs&dS dˆjˆj| f ‰ ˆjd kpXt‡ fdd„ˆjD ƒƒS )NFz%s.%s.%sc                 3   s   | ]}t ˆ |ƒV  qd S r	   )r   )rg   r@   ©ZfullNamer   r   Ú	<genexpr>ì   s     zKTestLoader.getTestCaseNames.<locals>.shouldIncludeMethod.<locals>.<genexpr>)Ú
startswithÚtestMethodPrefixrJ   r`   r   r   ÚtestNamePatternsÚany)ÚattrnameZtestFunc©r   r=   rl   r   ÚshouldIncludeMethodâ   s    
  ÿ
ÿz8TestLoader.getTestCaseNames.<locals>.shouldIncludeMethod)Úkey)ÚlistÚfilterrI   ÚsortTestMethodsUsingÚsortÚ	functoolsÚ
cmp_to_key)r   r=   rt   ZtestFnNamesr   rs   r   r:   ß   s
    zTestLoader.getTestCaseNamesútest*.pyc                 C   sJ  d}|d kr| j d k	r| j }n|d kr.d}|}tj |¡}|tjkrRtj d|¡ || _ d}d}g }tj tj |¡¡r¨tj |¡}||kr¤tj tj |d¡¡ }�npzt	|ƒ W n t
k
rÎ   d}Y �nJX tj| }| d¡d }	ztj tj |j¡¡}W nâ tk
�rä   z
|j}
W n tk
�r8   d }
Y nX |
�r¶|
jd k�r¶|
jd k	�ràd}|jD ]P}|�s|| |¡�s|�qb| |j dtjj¡¡d | _ | | j||dd�¡ �qbn*|jtjk�rÐtdƒd ‚ntd |¡ƒd ‚Y nX |�r|�s|  |	¡| _ tj |¡ ntj |¡ |�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ÚisfilerZ   r[   r   ÚmodulesrY   ÚdirnameÚ__file__r\   Ú__spec__ÚloaderÚsubmodule_search_locationsrW   rn   r   ÚreplaceÚsepÚextendÚ_find_testsÚbuiltin_module_namesr9   rG   Ú _get_directory_containing_moduleÚremoverv   r    )r   Ú	start_dirr@   Ztop_level_dirZset_implicit_topZis_not_importableÚis_namespacerP   Z
the_moduleZtop_partÚspecr0   r   r   r   Údiscoverò   s’    

ÿ


ÿ
 ÿÿÿ
þÿÿÿþÿzTestLoader.discoverc                 C   sR   t j| }tj |j¡}tj |¡ ¡  d¡rBtj 	tj 	|¡¡S tj 	|¡S d S )Nr}   )
r�   r…   r/   r0   r€   r‡   Úbasenamer-   rn   r†   )r   rb   rN   Ú	full_pathr   r   r   r�   `  s
    
z+TestLoader._get_directory_containing_modulec                 C   sB   || j krdS ttj |¡ƒ}tj || j ¡}| tjjd¡}|S ©NrV   )r   r2   r/   r0   ÚnormpathÚrelpathr‹   rŒ   )r   r0   Z_relpathr   r   r   r   Ú_get_name_from_pathl  s    
zTestLoader._get_name_from_pathc                 C   s   t |ƒ tj| S r	   )r[   r�   r…   )r   r   r   r   r   Ú_get_module_from_namex  s    z TestLoader._get_module_from_namec                 C   s
   t ||ƒS r	   )r   )r   r0   r—   r@   r   r   r   Ú_match_path|  s    zTestLoader._match_pathFc           
   
   c   sÐ   |   |¡}|dkrD|| jkrD|  |||¡\}}|d k	r<|V  |sDd S tt |¡ƒ}|D ]t}tj ||¡}	|  |	||¡\}}|d k	rˆ|V  |rV|   |	¡}| j |¡ z|  
|	||¡E d H  W 5 | j 	|¡ X qVd S r˜   )r›   r6   Ú_find_test_pathrH   r/   Úlistdirr0   rZ   ÚaddÚdiscardrŽ   )
r   r’   r@   r~   r   rP   Zshould_recurseÚpathsr0   r—   r   r   r   rŽ   €  s6    
  ÿ  ÿ
zTestLoader._find_testsc              
   C   st  t j |¡}t j |¡�rVt |¡s(dS |  |||¡s:dS |  |¡}z|  |¡}W nh t	j
k
rŒ } zt||| jƒdf W Y ¢S d }~X Y nÆ   t|| jƒ\}}	| j |	¡ |df Y S X t j t|d|ƒ¡}
tt j |
¡ƒ}tt j |¡ƒ}| ¡ | ¡ k�r@t j |¡}tt j |¡ƒ}t j |¡}d}t||||f ƒ‚| j||d�dfS �nt j |¡�rl|�s†t j t j |d¡¡�s†dS d }d }|  |¡}z|  |¡}W nj t	j
k
�râ } zt||| jƒdf W Y ¢S d }~X Y nˆ   t|| jƒ\}}	| j |	¡ |df Y S X t|dd ƒ}| j |¡ z0| j||d�}|d k	�rP|dfW ¢S |dfW ¢S | j |¡ X ndS d S )	N)NFFr‡   zW%r module incorrectly imported from %r. Expected %r. Is this module globally installed?r?   r}   rA   T)r/   r0   r–   r„   ÚVALID_MODULE_NAMEÚmatchr�   r›   rœ   r   ZSkipTestr,   r    r"   r4   rL   r€   rJ   r2   Úrealpathr-   r†   r   rU   rƒ   rZ   r6   r    r¡   )r   r—   r@   r~   r–   r   rN   rR   rS   rT   Zmod_filer¥   Zfullpath_noextZ
module_dirZmod_nameZexpected_dirÚmsgrA   rP   Úpackager   r   r   rž   ¢  s|    

&
ÿ
ÿ
ÿ
ÿ
ÿÿÿ
&
ÿ
zTestLoader._find_test_path)N)N)r|   N)F)F)r   r   r   ro   Ústaticmethodr   Úthree_way_cmprx   rp   r   r8   r    r   r   r>   rU   rf   rk   r:   r•   r�   r›   rœ   r�   rŽ   rž   r   r   r   r   r   r3   B   s$   
(
N

n
"r3   c                 C   s&   t ƒ }||_| |_||_|r"||_|S r	   )r3   rx   ro   rp   r    )ÚprefixÚ	sortUsingr    rp   r‰   r   r   r   Ú_makeLoaderñ  s    r¬   c                 C   s   t |||d� | ¡S )N)rp   )r¬   r:   )r=   rª   r«   rp   r   r   r   r:   ú  s    r:   r%   c                 C   s   t |||ƒ | ¡S r	   )r¬   r>   )r=   rª   r«   r    r   r   r   Ú	makeSuiteý  s    ÿr­   c                 C   s   t |||ƒ | ¡S r	   )r¬   rU   )rN   rª   r«   r    r   r   r   ÚfindTestCases  s    ÿr®   )NN)!r/   Úrer�   r   r]   rz   rC   r   r   Ú r   r   r   Z
__unittestÚcompileÚ
IGNORECASEr£   r*   r   r"   r#   r   r,   r2   Úobjectr3   ZdefaultTestLoaderr¬   r©   r:   r8   r­   r®   r   r   r   r   Ú<module>   s:      /
	ÿ
ÿ