£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~d(                 @   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/python37/lib64/python3.7/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 )N)
isinstancer   NotImplementedr   )r   otherr   r   r   __eq__   s    zBaseTestSuite.__eq__c             C   s
   t | jS )N)iterr   )r   r   r   r   __iter__"   s    zBaseTestSuite.__iter__c             C   s(   | j }x| D ]}|r|| 7 }qW |S )N)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x|D ]}| | qW 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   s:   x4t | D ](\}}|jrP || | jr
| | q
W |S )N)	enumerate
shouldStop_cleanup_removeTestAtIndex)r   resultindexr    r   r   r   run<   s    zBaseTestSuite.runc             C   sN   y| j | }W n tk
r"   Y n(X t|dr@|  j| 7  _d | j |< d S )Nr   )r   r"   hasattrr   r   )r   r0   r    r   r   r   r.   E   s    
z BaseTestSuite._removeTestAtIndexc             O   s   | j ||S )N)r1   )r   argskwdsr   r   r   __call__S   s    zBaseTestSuite.__call__c             C   s   x| D ]}|   qW d S )N)debug)r   r    r   r   r   r6   V   s    
zBaseTestSuite.debugN)r   )__name__
__module____qualname__r-   r   r   r   r   r   r)   r   r1   r.   r5   r6   r   r   r   r   r      s   

	r   c               @   sN   e 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S )r'   Fc             C   s   d}t |dddkrd |_}xt| D ]\}}|jr8P t|r| || | || | || |j|_	t |jdds(t |ddrq(|s|| n|
  | jr(| | q(W |r| d | | | d|_|S )NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)r	   r:   r+   r,   _isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr   _previousTestClassr6   r-   r.   _handleModuleTearDown)r   r/   r6   ZtopLevelr0   r    r   r   r   r1   f   s0    


zTestSuite.runc             C   s   t  }| |d d S )NT)_DebugResultr1   )r   r6   r   r   r   r6      s    zTestSuite.debugc       	   
   C   s   t |dd }|j}||krd S |jr(d S t |ddr8d S y
d|_W n tk
rV   Y nX t |dd }|d k	rt|d zdy
|  W nT tk
r } z6t|tr d|_t	
|}d| }| ||| W d d }~X Y nX W d t|d X d S )	NrA   __unittest_skip__F
setUpClass_setupStdoutTzsetUpClass (%s)_restoreStdout)r	   r   r<   r;   r"   r   	Exceptionr   rC   r   r   _addClassOrModuleLevelException)	r   r    r/   previousClasscurrentClassrE   e	className	errorNamer   r   r   r@      s2    




$zTestSuite._handleClassSetUpc             C   s"   d }t |dd }|d k	r|j}|S )NrA   )r	   r8   )r   r/   previousModulerJ   r   r   r   _get_previous_module   s
    zTestSuite._get_previous_modulec       	   
   C   s   |  |}|jj}||krd S | | d|_ytj| }W n tk
rP   d S X t|dd }|d k	rt	|d zZy
|  W nJ t
k
r } z,t|tr d|_d| }| ||| W d d }~X Y nX W d t	|d X d S )NFsetUpModulerF   TzsetUpModule (%s)rG   )rP   r   r8   rB   r<   sysmodulesKeyErrorr	   r   rH   r   rC   rI   )	r   r    r/   rO   ZcurrentModulemodulerQ   rL   rN   r   r   r   r?      s,    




$zTestSuite._handleModuleFixturec             C   sL   t |}t|dd }|d k	r8t|tjr8||t| n||t  d S )NaddSkip)	_ErrorHolderr	   r   r   ZSkipTestr*   ZaddErrorrR   exc_info)r   r/   Z	exceptionrN   errorrV   r   r   r   rI      s
    z)TestSuite._addClassOrModuleLevelExceptionc          
   C   s   |  |}|d krd S |jr d S ytj| }W n tk
rB   d S X t|dd }|d k	rt|d zTy
|  W nD tk
r } z&t|t	r d| }| 
||| W d d }~X Y nX W d t|d X d S )NtearDownModulerF   ztearDownModule (%s)rG   )rP   r<   rR   rS   rT   r	   r   rH   r   rC   rI   )r   r/   rO   rU   rZ   rL   rN   r   r   r   rB      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	rt|d z^y
|  W nN tk
r } z0t|tr t|}d| }| ||| W d d }~X Y nX W d t|d	 X d S )
NrA   r;   Fr<   rD   tearDownClassrF   ztearDownClass (%s)rG   )	r	   r   r   rH   r   rC   r   r   rI   )	r   r    r/   rJ   rK   r[   rL   rM   rN   r   r   r   r>      s,    



$z TestSuite._tearDownPreviousClassN)F)r7   r8   r9   r1   r6   r@   rP   r?   rI   rB   r>   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 )rW   Nc             C   s
   || _ d S )N)description)r   r\   r   r   r   r     s    z_ErrorHolder.__init__c             C   s   | j S )N)r\   )r   r   r   r   id  s    z_ErrorHolder.idc             C   s   d S )Nr   )r   r   r   r   shortDescription   s    z_ErrorHolder.shortDescriptionc             C   s   d| j f S )Nz<ErrorHolder description=%r>)r\   )r   r   r   r   r   #  s    z_ErrorHolder.__repr__c             C   s   |   S )N)r]   )r   r   r   r   __str__&  s    z_ErrorHolder.__str__c             C   s   d S )Nr   )r   r/   r   r   r   r1   )  s    z_ErrorHolder.runc             C   s
   |  |S )N)r1   )r   r/   r   r   r   r5   .  s    z_ErrorHolder.__call__c             C   s   dS )Nr   r   )r   r   r   r   r   1  s    z_ErrorHolder.countTestCases)r7   r8   r9   ZfailureExceptionr   r]   r^   r   r_   r1   r5   r   r   r   r   r   rW     s   
rW   c             C   s&   yt |  W n tk
r    dS X dS )NTF)r   r"   )r    r   r   r   r=   4  s
    r=   c               @   s   e Zd ZdZdZdZdS )rC   NF)r7   r8   r9   rA   r<   r,   r   r   r   r   rC   =  s   rC   )rR    r   r   Z
__unittestr   objectr   r'   rW   r=   rC   r   r   r   r   <module>   s   L 3&	