
    daf4                         	 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y)    N   )case)utilTc                 .    t        | |d       } |        y )Nc                       y N r	       )/root/Python-3.12.4/Lib/unittest/suite.py<lambda>z!_call_if_exists.<locals>.<lambda>   s    r
   )getattr)parentattrfuncs      r   _call_if_existsr      s    64.DFr
   c                   V    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y)BaseTestSuiteTc                 B    g | _         d| _        | j                  |       y 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                 h    t        || j                        st        S t        |       t        |      k(  S r   )
isinstancer    NotImplementedr!   )r   others     r   __eq__zBaseTestSuite.__eq__   s)    %0!!DzT%[((r
   c                 ,    t        | j                        S r   )iterr   r"   s    r   __iter__zBaseTestSuite.__iter__"   s    DKK  r
   c                 X    | j                   }| D ]  }|s||j                         z  } |S r   )r   countTestCases)r   casestests      r   r-   zBaseTestSuite.countTestCases%   s9    ## 	/D,,..	/ r
   c                    t        |      s#t        dj                  t        |                  t	        |t
              r+t        |t        j                  t        f      rt        d      | j                  j                  |       y )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,   sj    ~077T
CDDdD!j26--1K'M ? @ @4 r
   c                 j    t        |t              rt        d      |D ]  }| j                  |        y )Nz0tests must be an iterable of tests, not a string)r%   strr2   r;   )r   r   r/   s      r   r   zBaseTestSuite.addTests6   s3    eS!NOO 	DLL	r
   c                     t        |       D ]:  \  }}|j                  r |S  ||       | j                  s*| j                  |       < |S r   )	enumerate
shouldStop_cleanup_removeTestAtIndex)r   resultindexr/   s       r   runzBaseTestSuite.run<   sQ    $T? 	/KE4    L}}''.	/ r
   c                     	 	 | j                   |   }t        |d      r#| xj                  |j                         z  c_        d | j                   |<   y # t        $ r Y y w xY w)Nr-   )r   hasattrr   r-   r2   )r   rD   r/   s      r   rB   z BaseTestSuite._removeTestAtIndexE   sa    @
	&;;u%D t-.##t':':'<<#!%DKK  		s   A 	AAc                 &     | j                   |i |S r   rE   )r   argskwdss      r   __call__zBaseTestSuite.__call__S   s    txx&&&r
   c                 4    	 | D ]  }|j                           y r   )debugr:   s     r   rN   zBaseTestSuite.debugV   s    E 	DJJL	r
   N)r	   )__name__
__module____qualname__rA   r   r#   r(   r+   r-   r;   r   rE   rB   rL   rN   r	   r
   r   r   r      sD    H
M)
!!&'r
   r   c                   N    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y)r8   c                 4   d}t        |dd      du r	dx|_        }t        |       D ]  \  }}|j                  r nt	        |      rl| j                  ||       | j                  ||       | j                  ||       |j                  |_	        t        |j                  dd      st        |dd      r|s	 ||       n|j                          | j                  s| j                  |        |r*| j                  d |       | j                  |       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   s   6,e4=044F"X$T? 	/KE4  4 ++D&9))$7&&tV4,0NN)DNN,?GF$8%@V

}}''.)	/, ''f5&&v.%*F"r
   c                 >    	 t               }| j                  |d       y )NT)_DebugResultrE   )r   rN   s     r   rN   zTestSuite.debug   s    Er
   c                    t        |dd       }|j                  }||k(  ry |j                  ry t        |dd      ry d}	 d|_        t        |dd       }t        |dd       }|Wt        |d       	 	  |        |r3|1 |        |j                  D ]  }
| j                  ||
d   d	|
	        t        |d
       y y # t        $ r Y w xY w# t        $ r^}t        |t              r d}	 d|_        n# t        $ r Y nw xY wt        j                  |      }	| j                  ||d|	       Y d }~d }~ww xY w# t        |d
       w xY w)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   s   (<dC~~=($$<!4e<	-2L* \<>
!,0A4H!FN3:GL o9#%$0$D$D /?? &\9%- @ //
  (891 "  	 	 ! G!&,7!F9=6$  $l ;I;;FA<H<EG GG&  (89se   B9 /C 65D2 9	CC	D/D*%C-,D*-	C96D*8C99,D*%D2 *D//D2 2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$*55Nr
   c                 r   | j                  |      }|j                  j                  }||k(  ry | j                  |       d|_        	 t
        j                  |   }t        |dd       }|Ct        |d       	 	  |        |j                  r	 t        j                          t        |d       y y # t        $ r Y y w xY w# t        $ r6}t        |t              r d|_        | j                  ||d|       Y d }~xd }~ww xY w# t        $ r}| j                  ||d|       Y d }~d }~ww xY w# t        |d       w xY w)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   sQ   226:11N*""6* %*!	[[/F fmT:"FN3:KM ,,O--/  (89) #  		 ! K!&,704F-;;FA<I<IK K	K % O??@M@MO OO
  (89sf   B- 7B< >D( C> -	B98B9<	C;,C61D( 6C;;D( >	D%D D(  D%%D( (D6Nc                 <    | d| d}| j                  ||||       y )Nz ())_addClassOrModuleLevelException)r   rC   excmethod_namer   rf   	errorNames          r   ri   z,TestSuite._createClassOrModuleLevelException   s(    "m2fXQ/	,,VS)TJr
   c                    t        |      }t        |dd       }|-t        |t        j                        r ||t        |             y |s%|j                  |t        j                                y |j                  ||       y )NaddSkip)	_ErrorHolderr   r%   r   SkipTestr=   addErrorrv   rp   )r   rC   	exceptionr   rf   errorr   s          r   r~   z)TestSuite._addClassOrModuleLevelException   s`    Y'&)T2:i#GE3y>*s||~6t,r
   c                 $   | j                  |      }|y |j                  ry 	 t        j                  |   }t        |d       	 t        |dd       }|	  |        	 t        j                          t        |d       y # t        $ r Y y w xY w# t        $ r/}t        |t              r | j                  ||d|       Y d }~dd }~ww xY w# t        $ r/}t        |t              r | j                  ||d|       Y d }~d }~ww xY w# 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:!$$	[[0F 	/	6$V-=tDN)L"$H%%' F$451  		 ! L!&,7;;FA<L<JL LL  Hfl3778H8FH HH F$45se   A< D B C <	BB	C%B>9D >CD 	C>%C94D 9C>>D Dc                    t        |dd       }|j                  }||k(  s|y t        |dd      ry t        |dd      ry t        |dd      ry t        |dd       }t        |dd       }||y t        |d       	 |	  |        |[ |        |j                  D ]E  }	t	        |t
              r|	d	   t        j                  |      }| j                  ||	d	   d||	
       G t        |d       y # t        $ rD}t	        |t
              r t        j                  |      }| j                  ||d|       Y d }~d }~ww xY w# 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  sz   (<dC~~=(M,A="5u=6/7="5u=E!-1BDI _%</	6(G!O *! - A A KH!&,7&qk) $m <I;;FHQK<K<EAI < K	K F$45% ! G!&,7 $m <I;;FA<K<EG G	G$ F$45s7   8D< ;C, AD< ,	D95:D4/D< 4D99D< <E
)Fr   )rO   rP   rQ   rE   rN   rZ   rs   rY   ri   r~   r\   rX   r	   r
   r   r8   r8   \   sC    B,:\#:L 9=K .2
-!6F(6r
   r8   c                   B    e Zd Z	 dZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy)
r   Nc                     || _         y 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                      y r   r	   r"   s    r   shortDescriptionz_ErrorHolder.shortDescriptionZ  s    r
   c                 "    d| j                   dS )Nz<ErrorHolder description=r   r   r"   s    r   r#   z_ErrorHolder.__repr__]  s    151A1ACCr
   c                 "    | j                         S r   )r   r"   s    r   __str__z_ErrorHolder.__str__`  s    wwyr
   c                      y r   r	   r   rC   s     r   rE   z_ErrorHolder.runc  s     	r
   c                 $    | j                  |      S r   rI   r   s     r   rL   z_ErrorHolder.__call__h  s    xxr
   c                      yr   r	   r"   s    r   r-   z_ErrorHolder.countTestCasesk  s    r
   )rO   rP   rQ   failureExceptionr   r   r   r#   r   rE   rL   r-   r	   r
   r   r   r   H  s8     ' D
 r
   r   c                 <    	 	 t        |        y# t        $ r Y yw xY w)NTF)r*   r2   )r/   s    r   rW   rW   n  s*    ET
   s    	c                       e Zd Z	 dZdZdZy)r_   NF)rO   rP   rQ   r[   rV   r@   r	   r
   r   r_   r_   w  s    IJr
   r_   )rv    r   r   
__unittestr   objectr   r8   r   rW   r_   r	   r
   r   <module>r      sW     
  

IF IXi6 i6X$6 $L6 r
   