<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>

](                 @   s   d  d l  Z  d d l m Z d d l m Z d Z d d   Z Gd d	   d	 e  Z Gd
 d   d e  Z Gd d   d e  Z	 d d   Z
 Gd 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   */opt/alt/python35/lib64/python3.5/suite.py<lambda>   s    z!_call_if_exists.<locals>.<lambda>)getattr)parentattrfuncr   r   r   _call_if_exists   s    r   c               @   s   e  Z d  Z d Z f  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)BaseTestSuiteTc             C   s#   g  |  _  d |  _ |  j |  d  S)Nr   )_tests_removed_testsaddTests)selftestsr   r   r   __init__   s    		zBaseTestSuite.__init__c             C   s    d t  j |  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 St |   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   s4   |  j  } x$ |  D] } | r | | j   7} q W| S)N)r   countTestCases)r   Zcasestestr   r   r   r   %   s
    	zBaseTestSuite.countTestCasesc             C   sn   t  |  s' t d j t |     t | t  rZ t | t j t	 f  rZ t d   |  j
 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] } |  j |  q" Wd  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   sK   xD t  |   D]6 \ } } | j r# P| |  |  j r |  j |  q W| S)N)	enumerate
shouldStop_cleanup_removeTestAtIndex)r   resultindexr   r   r   r   run<   s    	
	zBaseTestSuite.runc             C   s[   y |  j  | } Wn t k
 r% Yn2 Xt | d  rJ |  j | j   7_ d  |  j  | <d  S)Nr   )r   r!   hasattrr   r   )r   r/   r   r   r   r   r-   E   s    z BaseTestSuite._removeTestAtIndexc             O   s   |  j  | |   S)N)r0   )r   argskwdsr   r   r   __call__S   s    zBaseTestSuite.__call__c             C   s   x |  D] } | j    q Wd  S)N)debug)r   r   r   r   r   r5   V   s    zBaseTestSuite.debugN)__name__
__module____qualname__r,   r   r   r   r   r   r(   r   r0   r-   r4   r5   r   r   r   r   r      s   
	r   c               @   ss   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 | _ } x t |   D] \ } } | j rN Pt |  r |  j | |  |  j | |  |  j | |  | j | _	 t  | j d d  s8 t  | d d  r q8 | s | |  n
 | j
   |  j r8 |  j |  q8 W| r#|  j d  |  |  j |  d | _ | S)NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)r   r9   r*   r+   _isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr   _previousTestClassr5   r,   r-   _handleModuleTearDown)r   r.   r5   ZtopLevelr/   r   r   r   r   r0   f   s0    	
		zTestSuite.runc             C   s   t    } |  j | d  d  S)NT)_DebugResultr0   )r   r5   r   r   r   r5      s    	zTestSuite.debugc       	       C   s.  t  | d d   } | j } | | k r+ d  S| j r8 d  St  | d d  rN d  Sy d | _ Wn t k
 ro Yn Xt  | d d   } | d  k	 r*t | d  z~ y |   Wnl t k
 r} zL t | t  r   d | _ t	 j
 |  } d | } |  j | | |  WYd  d  } ~ Xn XWd  t | d  Xd  S)	Nr@   __unittest_skip__F
setUpClass_setupStdoutTzsetUpClass (%s)_restoreStdout)r   r   r;   r:   r!   r   	Exceptionr   rB   r   r   _addClassOrModuleLevelException)	r   r   r.   previousClasscurrentClassrD   e	className	errorNamer   r   r   r?      s2    			
*zTestSuite._handleClassSetUpc             C   s1   d  } t  | d d   } | d  k	 r- | j } | S)Nr@   )r   r7   )r   r.   previousModulerI   r   r   r   _get_previous_module   s
    	zTestSuite._get_previous_modulec       	       C   s  |  j  |  } | j j } | | k r+ d  S|  j |  d | _ y t j | } Wn t k
 rj d  SYn Xt | d d   } | d  k	 rt	 | d  zo y |   Wn] t
 k
 r} z= t | t  r   d | _ d | } |  j | | |  WYd  d  } ~ Xn XWd  t	 | d  Xd  S)NFsetUpModulerE   TzsetUpModule (%s)rF   )rO   r   r7   rA   r;   sysmodulesKeyErrorr   r   rG   r   rB   rH   )	r   r   r.   rN   ZcurrentModulemodulerP   rK   rM   r   r   r   r>      s,    			
*zTestSuite._handleModuleFixturec             C   sl   t  |  } t | d d   } | d  k	 rR t | t j  rR | | t |   n | j | t j    d  S)NaddSkip)	_ErrorHolderr   r   r   ZSkipTestr)   ZaddErrorrQ   exc_info)r   r.   	exceptionrM   errorrU   r   r   r   rH      s
    z)TestSuite._addClassOrModuleLevelExceptionc              C   s   |  j  |  } | d  k r d  S| j r, d  Sy t j | } Wn t k
 rU d  SYn Xt | d d   } | d  k	 r t | d  zf y |   WnT t k
 r } z4 t | t	  r   d | } |  j
 | | |  WYd  d  } ~ Xn XWd  t | d  Xd  S)NtearDownModulerE   ztearDownModule (%s)rF   )rO   r;   rQ   rR   rS   r   r   rG   r   rB   rH   )r   r.   rN   rT   rZ   rK   rM   r   r   r   rA      s(    		
*zTestSuite._handleModuleTearDownc       	      C   s"  t  | d d   } | j } | | k r+ d  St  | d d  rA d  St  | d d  rW d  St  | d d  rm d  St  | d d   } | d  k	 rt | d  zu y |   Wnc t k
 r} zC t | t  r   t j |  } d | } |  j | | |  WYd  d  } ~ Xn XWd  t | d	  Xd  S)
Nr@   r:   Fr;   rC   tearDownClassrE   ztearDownClass (%s)rF   )	r   r   r   rG   r   rB   r   r   rH   )	r   r   r.   rI   rJ   r[   rK   rL   rM   r   r   r   r=      s,    	
*z TestSuite._tearDownPreviousClassN)r6   r7   r8   r0   r5   r?   rO   r>   rH   rA   r=   r   r   r   r   r&   \   s   
! r&   c               @   sv   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)rV   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
   |  j    S)N)r]   )r   r   r   r   __str__&  s    z_ErrorHolder.__str__c             C   s   d  S)Nr   )r   r.   r   r   r   r0   )  s    z_ErrorHolder.runc             C   s   |  j  |  S)N)r0   )r   r.   r   r   r   r4   .  s    z_ErrorHolder.__call__c             C   s   d S)Nr   r   )r   r   r   r   r   1  s    z_ErrorHolder.countTestCases)r6   r7   r8   ZfailureExceptionr   r]   r^   r   r_   r0   r4   r   r   r   r   r   rV     s   
rV   c             C   s+   y t  |   Wn t k
 r& d SYn Xd 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)rB   NF)r6   r7   r8   r@   r;   r+   r   r   r   r   rB   =  s   rB   )rQ    r   r   Z
__unittestr   objectr   r&   rV   r<   rB   r   r   r   r   <module>   s   L&	