
    =Og4                         	 d dl Z ddlmZ ddlmZ dZd Z G d de          Z G d	 d
e          Z G d de          Z	d Z
 G d de          ZdS )    N   )case)utilTc                 >    t          | |d           } |             d S )Nc                      d S N r	       '/usr/lib64/python3.11/unittest/suite.py<lambda>z!_call_if_exists.<locals>.<lambda>   s     r
   )getattr)parentattrfuncs      r   _call_if_existsr      s$    64..DDFFFFFr
   c                   X    e Zd Z	 dZddZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd ZdS )BaseTestSuiteTr	   c                 L    g | _         d| _        |                     |           d S Nr   )_tests_removed_testsaddTests)selftestss     r   __init__zBaseTestSuite.__init__   s)    er
   c                 \    dt          j        | j                  dt          |           dS )N<z tests=>)r   strclass	__class__listr   s    r   __repr__zBaseTestSuite.__repr__   s+     "&-"?"?"?"?dLLr
   c                 z    t          || j                  st          S t          |           t          |          k    S r   )
isinstancer    NotImplementedr!   )r   others     r   __eq__zBaseTestSuite.__eq__   s3    %00 	"!!DzzT%[[((r
   c                 *    t          | j                  S r   )iterr   r"   s    r   __iter__zBaseTestSuite.__iter__"   s    DK   r
   c                 P    | j         }| D ]}|r||                                z  }|S r   )r   countTestCases)r   casestests      r   r-   zBaseTestSuite.countTestCases%   s=    # 	/ 	/D /,,...r
   c                 @   t          |          s/t          d                    t          |                              t	          |t
                    r0t          |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   TestCase	TestSuiter   appendr   r/   s     r   addTestzBaseTestSuite.addTest,   s    ~~ 	E077T

CCDDDdD!! 	@j26-1K'M 'M 	@ ? @ @ @4     r
   c                     t          |t                    rt          d          |D ]}|                     |           d S )Nz0tests must be an iterable of tests, not a string)r%   strr2   r;   )r   r   r/   s      r   r   zBaseTestSuite.addTests6   sR    eS!! 	PNOOO 	 	DLL	 	r
   c                     t          |           D ]5\  }}|j        r n( ||           | j        r|                     |           6|S r   )	enumerate
shouldStop_cleanup_removeTestAtIndex)r   resultindexr/   s       r   runzBaseTestSuite.run<   s\    $T?? 	/ 	/KE4  DLLL} /''...r
   c                     	 	 | j         |         }t          |d          r"| xj        |                                z  c_        d | j         |<   d S # t          $ r Y d S w xY w)Nr-   )r   hasattrr   r-   r2   )r   rD   r/   s      r   rB   z BaseTestSuite._removeTestAtIndexE   s    @
	&;u%D t-.. =##t':':'<'<<##!%DK  	 	 	DD	s   A 
AAc                      | j         |i |S r   rE   )r   argskwdss      r   __call__zBaseTestSuite.__call__S   s    tx&&&&r
   c                 :    	 | D ]}|                                  d S r   )debugr:   s     r   rN   zBaseTestSuite.debugV   s-    E 	 	DJJLLLL	 	r
   N)r	   )__name__
__module____qualname__rA   r   r#   r(   r+   r-   r;   r   rE   rB   rL   rN   r	   r
   r   r   r      s        H   
M M M) ) )
! ! !  ! ! !    & & &' ' '    r
   r   c                   P    e Zd Z	 ddZd Zd Zd Zd Z	 ddZ	 dd	Z	d
 Z
d ZdS )r8   Fc                 l   d}t          |dd          du r	dx|_        }t          |           D ]\  }}|j        r nt	          |          rv|                     ||           |                     ||           |                     ||           |j        |_	        t          |j        dd          st          |dd          r|s ||           n|
                                 | j        r|                     |           |r2|                     d |           |                     |           d|_        |S )NF_testRunEnteredT_classSetupFailed_moduleSetUpFailed)r   rT   r?   r@   _isnotsuite_tearDownPreviousClass_handleModuleFixture_handleClassSetUpr    _previousTestClassrN   rA   rB   _handleModuleTearDown)r   rC   rN   topLevelrD   r/   s         r   rE   zTestSuite.runf   sb   6,e44==044F"X$T?? 	/ 	/KE4  4   ++D&999))$777&&tV444,0N)DN,?GG F$8%@@ V

} /''... 	+''f555&&v...%*F"r
   c                 P    	 t                      }|                     |d           d S )NT)_DebugResultrE   )r   rN   s     r   rN   zTestSuite.debug   s(    Er
   c                    t          |dd           }|j        }||k    rd S |j        rd S t          |dd          rd S d}	 d|_        n# t          $ r Y nw xY wt          |dd           }t          |dd           }|t          |d           	 	  |             nt# t          $ rg}t          |t                    r d}	 d|_        n# t          $ r Y nw xY wt          j
        |          }	|                     ||d|	           Y d }~nd }~ww xY w|r6|4 |             |j        D ]"}
|                     ||
d         d|	|
	           #t          |d
           d S # t          |d
           w xY wd S )Nr[   __unittest_skip__F
setUpClassdoClassCleanups_setupStdoutTr   info_restoreStdout)r   r    rV   rU   r2   r   	Exceptionr%   r_   r   r   "_createClassOrModuleLevelExceptiontearDown_exceptions)r   r/   rC   previousClasscurrentClassfailedrb   rc   e	classNameexc_infos              r   rZ   zTestSuite._handleClassSetUp   s8   (<dCC~=((F$ 	F<!4e<< 	F	-2L** 	 	 	 D	
 \<>>
!,0A4HH!FN333:GJLLLL  G G G!&,77 !F9=66$    $l ; ;I;;FA<H<EG G G G G G G GG  /o9#O%%%$0$D / /?? &\9%- @ / / / /  (899999(899991 "!sf    A 
AA
B E 
D
#D<CD
CDC/D E D

;E E)c                 >    d }t          |dd           }||j        }|S )Nr[   )r   rP   )r   rC   previousModulerk   s       r   _get_previous_modulezTestSuite._get_previous_module   s-    (<dCC$*5Nr
   c                    |                      |          }|j        j        }||k    rd S |                     |           d|_        	 t
          j        |         }n# t          $ r Y d S w xY wt          |dd           }|t          |d           	 	  |             nL# t          $ r?}t          |t                    r d|_        |                     ||d|           Y d }~nd }~ww xY w|j        rD	 t          j                     n/# t          $ r"}|                     ||d|           Y d }~nd }~ww xY wt          |d           d S # t          |d           w xY wd S )NFsetUpModulerd   Trg   )rs   r    rP   r\   rV   sysmodulesKeyErrorr   r   rh   r%   r_   ri   r   doModuleCleanups)r   r/   rC   rr   currentModulemoduleru   rn   s           r   rY   zTestSuite._handleModuleFixture   s   226::1N**F""6*** %*!	[/FF 	 	 	FF	fmT::"FN333:KKMMMM  K K K!&,77 04F-;;FA<I<IK K K K K K K K	K , OO-////$ O O O??@M@MO O O O O O O OO
  (899999(89999) #"sl   A 
A('A(
B E 
C$%5CE C$$
E /D E 
D/D*%E *D//E ENc                 F    | d| d}|                      ||||           d S )Nz ())_addClassOrModuleLevelException)r   rC   excmethod_namer   rf   	errorNames          r   ri   z,TestSuite._createClassOrModuleLevelException   s8    "//f///	,,VS)TJJJJJr
   c                 6   t          |          }t          |dd           }|5t          |t          j                  r ||t          |                     d S |s)|                    |t          j                               d S |                    ||           d S )NaddSkip)	_ErrorHolderr   r%   r   SkipTestr=   addErrorrv   rp   )r   rC   	exceptionr   rf   errorr   s          r   r~   z)TestSuite._addClassOrModuleLevelException   s    Y''&)T22:i#G#GGE3y>>***** -s|~~66666t,,,,,r
   c                 |   |                      |          }|d S |j        rd S 	 t          j        |         }n# t          $ r Y d S w xY wt          |d           	 t          |dd           }|Q	  |             nE# t          $ r8}t          |t                    r | 
                    ||d|           Y d }~nd }~ww xY w	 t          j                     nE# t          $ r8}t          |t                    r | 
                    ||d|           Y d }~nd }~ww xY wt          |d           d S # t          |d           w xY w)Nrd   tearDownModulerg   )rs   rV   rv   rw   rx   r   r   rh   r%   r_   ri   r   ry   )r   rC   rr   r{   r   rn   s         r   r\   zTestSuite._handleModuleTearDown   s   226::!F$ 	F	[0FF 	 	 	FF	 	///	6$V-=tDDN)L"N$$$$  L L L!&,77 ;;FA<L<JL L L L L L L LLH%'''' H H Hfl33 778H8FH H H H H H H HH F$455555OF$45555so   7 
AAD) -
A8 7D) 8
B:.B50D) 5B::D) >C D) 
D.D
D) DD) )D;c                    t          |dd           }|j        }||k    s|d S t          |dd          rd S t          |dd          rd S t          |dd          rd S t          |dd           }t          |dd           }||d S t          |d           	 |e	  |             nY# t          $ rL}t	          |t
                    r t          j        |          }|                     ||d|           Y d }~nd }~ww xY w|e |             |j	        D ]S}	t	          |t
                    r|	d	         t          j        |          }|                     ||	d	         d||	
           Tt          |d           d S # t          |d           w xY w)Nr[   rU   FrV   ra   tearDownClassrc   rd   r   re   rg   )
r   r    r   rh   r%   r_   r   r   ri   rj   )
r   r/   rC   rk   rl   r   rc   rn   ro   rp   s
             r   rX   z TestSuite._tearDownPreviousClass  s%   (<dCC~=((M,AF="5u== 	F6/77 	F="5u== 	FEE!-1BDII _%<F///	6(G!MOOOO  G G G!&,77  $m < <I;;FA<K<EG G G G G G G G	G *!!! - A K KH!&,77 *&qk) $m < <I;;FHQK<K<EAI < K K K K
 F$455555OF$45555s8   E5 
B# "E5 #
C9-AC4/E5 4C99A*E5 5F)Fr   )rO   rP   rQ   rE   rN   rZ   rs   rY   ri   r~   r\   rX   r	   r
   r   r8   r8   \   s           B  ,: ,: ,:\  #: #: #:L 9=K K K K .2
- 
- 
- 
-!6 !6 !6F(6 (6 (6 (6 (6r
   r8   c                   D    e Zd Z	 dZd Zd Zd Zd Zd Zd Z	d Z
d	 ZdS )
r   Nc                     || _         d S r   description)r   r   s     r   r   z_ErrorHolder.__init__T  s    &r
   c                     | j         S r   r   r"   s    r   idz_ErrorHolder.idW  s    r
   c                     d S r   r	   r"   s    r   shortDescriptionz_ErrorHolder.shortDescriptionZ  s    tr
   c                     d| j         dS )Nz<ErrorHolder description=r   r   r"   s    r   r#   z_ErrorHolder.__repr__]  s     151A1A1ACCr
   c                 *    |                                  S r   )r   r"   s    r   __str__z_ErrorHolder.__str__`  s    wwyyr
   c                     d S r   r	   r   rC   s     r   rE   z_ErrorHolder.runc  s	     	r
   c                 ,    |                      |          S r   rI   r   s     r   rL   z_ErrorHolder.__call__h  s    xxr
   c                     dS r   r	   r"   s    r   r-   z_ErrorHolder.countTestCasesk  s    qr
   )rO   rP   rQ   failureExceptionr   r   r   r#   r   rE   rL   r-   r	   r
   r   r   r   H  s         ' ' '       D D D    
         r
   r   c                 L    	 	 t          |            n# t          $ r Y dS w xY wdS )NTF)r*   r2   )r/   s    r   rW   rW   n  s>    ET



   tt5s    
!!c                       e Zd Z	 dZdZdZdS )r_   NF)rO   rP   rQ   r[   rV   r@   r	   r
   r   r_   r_   w  s"        IJJJr
   r_   )rv    r   r   
__unittestr   objectr   r8   r   rW   r_   r	   r
   r   <module>r      s    



            
  
I I I I IF I I IXi6 i6 i6 i6 i6 i6 i6 i6X$ $ $ $ $6 $ $ $L      6     r
   