
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a2  ã                   @   sx   d dl Z ddlmZ ddlmZ dZdd„ ZG dd	„ d	eƒZG d
d„ deƒZG dd„ deƒZ	dd„ Z
G dd„ deƒZdS )é    Né   )Úcase)ÚutilTc                 C   s   t | |dd„ ƒ}|ƒ  d S )Nc                   S   s   d S ©N© r   r   r   ú3/opt/alt/python38/lib64/python3.8/unittest/suite.pyÚ<lambda>   ó    z!_call_if_exists.<locals>.<lambda>)Úgetattr)ÚparentÚattrÚfuncr   r   r   Ú_call_if_exists   s    r   c                   @   sj   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚBaseTestSuiteTr   c                 C   s   g | _ d| _|  |¡ d S ©Nr   )Ú_testsÚ_removed_testsÚaddTests)ÚselfÚtestsr   r   r   Ú__init__   s    zBaseTestSuite.__init__c                 C   s   dt  | j¡t| ƒf S )Nz<%s tests=%s>)r   ÚstrclassÚ	__class__Úlist©r   r   r   r   Ú__repr__   s    zBaseTestSuite.__repr__c                 C   s    t || jƒstS t| ƒt|ƒkS r   )Ú
isinstancer   ÚNotImplementedr   )r   Úotherr   r   r   Ú__eq__   s    zBaseTestSuite.__eq__c                 C   s
   t | jƒS r   )Úiterr   r   r   r   r   Ú__iter__"   s    zBaseTestSuite.__iter__c                 C   s$   | j }| D ]}|r
|| ¡ 7 }q
|S r   )r   ÚcountTestCases)r   ZcasesÚtestr   r   r   r"   %   s
    zBaseTestSuite.countTestCasesc                 C   sL   t |ƒstd t|ƒ¡ƒ‚t|tƒr<t|tjt	fƒr<tdƒ‚| j
 |¡ d S )Nz{} is not callablezNTestCases and TestSuites must be instantiated before passing them to addTest())ÚcallableÚ	TypeErrorÚformatÚreprr   ÚtypeÚ
issubclassr   ZTestCaseÚ	TestSuiter   Úappend©r   r#   r   r   r   ÚaddTest,   s    ÿzBaseTestSuite.addTestc                 C   s*   t |tƒrtdƒ‚|D ]}|  |¡ qd S )Nz0tests must be an iterable of tests, not a string)r   Ústrr%   r-   )r   r   r#   r   r   r   r   6   s    
zBaseTestSuite.addTestsc                 C   s8   t | ƒD ]*\}}|jr q4||ƒ | jr|  |¡ q|S r   )Ú	enumerateÚ
shouldStopÚ_cleanupÚ_removeTestAtIndex)r   ÚresultÚindexr#   r   r   r   Úrun<   s    zBaseTestSuite.runc                 C   sN   z| j | }W n tk
r"   Y n(X t|dƒr@|  j| ¡ 7  _d | j |< d S )Nr"   )r   r%   Úhasattrr   r"   )r   r4   r#   r   r   r   r2   E   s    
z BaseTestSuite._removeTestAtIndexc                 O   s   | j ||ŽS r   ©r5   )r   ÚargsÚkwdsr   r   r   Ú__call__S   s    zBaseTestSuite.__call__c                 C   s   | D ]}|  ¡  qd S r   )Údebugr,   r   r   r   r;   V   s    zBaseTestSuite.debugN)r   )Ú__name__Ú
__module__Ú__qualname__r1   r   r   r   r!   r"   r-   r   r5   r2   r:   r;   r   r   r   r   r      s   

	r   c                   @   sZ   e Z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	dd„ Z
dd„ ZdS )r*   Fc                 C   sÔ   d}t |ddƒdkrd |_}t| ƒD ]ˆ\}}|jr8 q°t|ƒrˆ|  ||¡ |  ||¡ |  ||¡ |j|_	t |jddƒs&t |ddƒrˆq&|s–||ƒ n| 
¡  | jr&|  |¡ q&|rÐ|  d |¡ |  |¡ d|_|S )NFÚ_testRunEnteredTÚ_classSetupFailedÚ_moduleSetUpFailed)r
   r?   r/   r0   Ú_isnotsuiteÚ_tearDownPreviousClassÚ_handleModuleFixtureÚ_handleClassSetUpr   Ú_previousTestClassr;   r1   r2   Ú_handleModuleTearDown)r   r3   r;   ZtopLevelr4   r#   r   r   r   r5   f   s2    

ÿ

zTestSuite.runc                 C   s   t ƒ }|  |d¡ d S )NT)Ú_DebugResultr5   )r   r;   r   r   r   r;   ‡   s    zTestSuite.debugc           	      C   s2  t |dd ƒ}|j}||krd S |jr(d S t |ddƒr8d S z
d|_W n tk
rV   Y nX t |dd ƒ}|d k	�r.t|dƒ z^z
|ƒ  W nN t
k
rÒ } z0t|tƒr¢‚ d|_t |¡}|  	||d|¡ W 5 d }~X Y nX W 5 t|dƒ |jdk�r,| ¡  t|jƒdk�r,|jD ]}| j	||d	 d||d
� �qX d S )NrF   Ú__unittest_skip__FÚ
setUpClassÚ_setupStdoutÚ_restoreStdoutTr   r   ©Úinfo)r
   r   rA   r@   r%   r   ÚdoClassCleanupsÚlenÚtearDown_exceptionsÚ"_createClassOrModuleLevelExceptionÚ	Exceptionr   rH   r   r   )	r   r#   r3   ÚpreviousClassÚcurrentClassrJ   ÚexcÚ	classNameÚer   r   r   rE   Ž   sL    





þ

   þzTestSuite._handleClassSetUpc                 C   s"   d }t |dd ƒ}|d k	r|j}|S )NrF   )r
   r=   )r   r3   ÚpreviousModulerT   r   r   r   Ú_get_previous_module¶   s
    zTestSuite._get_previous_modulec           	      C   s  |   |¡}|jj}||krd S |  |¡ d|_ztj| }W n tk
rR   Y d S X t|dd ƒ}|d k	�rt	|dƒ z–z
|ƒ  W n† t
k
�r } zfzt ¡  W n2 t
k
rÒ } z|  ||d|¡ W 5 d }~X Y nX t|tƒrà‚ d|_|  ||d|¡ W 5 d }~X Y nX W 5 t	|dƒ X d S )NFÚsetUpModulerK   rL   T)rZ   r   r=   rG   rA   ÚsysÚmodulesÚKeyErrorr
   r   rS   r   ÚdoModuleCleanupsrR   r   rH   )	r   r#   r3   rY   ZcurrentModuleÚmoduler[   rX   rV   r   r   r   rD   ¾   s>    




þ
þzTestSuite._handleModuleFixtureNc                 C   s$   |› d|› d�}|   ||||¡ d S )Nz (ú))Ú_addClassOrModuleLevelException)r   r3   rV   Zmethod_namer   rN   Ú	errorNamer   r   r   rR   á   s    z,TestSuite._createClassOrModuleLevelExceptionc                 C   s^   t |ƒ}t|dd ƒ}|d k	r8t|tjƒr8||t|ƒƒ n"|sN| |t ¡ ¡ n| ||¡ d S )NÚaddSkip)	Ú_ErrorHolderr
   r   r   ZSkipTestr.   ZaddErrorr\   Úexc_info)r   r3   Z	exceptionrc   rN   Úerrorrd   r   r   r   rb   æ   s    z)TestSuite._addClassOrModuleLevelExceptionc                 C   s  |   |¡}|d krd S |jr d S ztj| }W n tk
rD   Y d S X t|dd ƒ}|d k	�rt|dƒ zNz
|ƒ  W n> t	k
r° } z t|tƒr�‚ |  
||d|¡ W 5 d }~X Y nX W 5 t|dƒ zt ¡  W n4 t	k
�r  } z|  
||d|¡ W 5 d }~X Y nX X d S )NÚtearDownModulerK   rL   )rZ   rA   r\   r]   r^   r
   r   r   r_   rS   rR   r   rH   )r   r3   rY   r`   rh   rX   r   r   r   rG   ò   s:    




þ
þzTestSuite._handleModuleTearDownc           	      C   s  t |dd ƒ}|j}||krd S t |ddƒr.d S t |ddƒr>d S t |ddƒrNd S t |dd ƒ}|d k	�rt|dƒ zXz
|ƒ  W nH t	k
rÂ } z*t
|tƒr˜‚ t |¡}|  ||d|¡ W 5 d }~X Y nX W 5 t|dƒ | ¡  t|jƒd	k�r|jD ]&}t |¡}| j||d
 d||d� qðX d S )NrF   r@   FrA   rI   ÚtearDownClassrK   rL   r   r   rM   )r
   r   r   rO   rP   rQ   r   r   rR   rS   r   rH   )	r   r#   r3   rT   rU   ri   rV   rW   rX   r   r   r   rC     sB    




þ


ýz TestSuite._tearDownPreviousClass)F)N)N)r<   r=   r>   r5   r;   rE   rZ   rD   rR   rb   rG   rC   r   r   r   r   r*   \   s   

!($ ÿ
 ÿ
 r*   c                   @   sP   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ ZdS )re   Nc                 C   s
   || _ d S r   ©Údescription)r   rk   r   r   r   r   B  s    z_ErrorHolder.__init__c                 C   s   | j S r   rj   r   r   r   r   ÚidE  s    z_ErrorHolder.idc                 C   s   d S r   r   r   r   r   r   ÚshortDescriptionH  s    z_ErrorHolder.shortDescriptionc                 C   s   d| j f S )Nz<ErrorHolder description=%r>rj   r   r   r   r   r   K  s    z_ErrorHolder.__repr__c                 C   s   |   ¡ S r   )rl   r   r   r   r   Ú__str__N  s    z_ErrorHolder.__str__c                 C   s   d S r   r   ©r   r3   r   r   r   r5   Q  s    z_ErrorHolder.runc                 C   s
   |   |¡S r   r7   ro   r   r   r   r:   V  s    z_ErrorHolder.__call__c                 C   s   dS r   r   r   r   r   r   r"   Y  s    z_ErrorHolder.countTestCases)r<   r=   r>   ZfailureExceptionr   rl   rm   r   rn   r5   r:   r"   r   r   r   r   re   6  s   
re   c                 C   s(   zt | ƒ W n tk
r"   Y dS X dS )NTF)r    r%   )r#   r   r   r   rB   \  s
    rB   c                   @   s   e Zd ZdZdZdZdS )rH   NF)r<   r=   r>   rF   rA   r0   r   r   r   r   rH   e  s   rH   )r\   Ú r   r   Z
__unittestr   Úobjectr   r*   re   rB   rH   r   r   r   r   Ú<module>   s   L [&	