
    0hh7                     r   S r SSKJr  SSKrSSKrSSKrS r " S S5      r " S S\R                  5      r	 " S	 S
\R                  5      r
 " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r\S:X  a  \R                   " 5         gg)zTests for the raise statement.    )supportNc                  ^     [        5       e! [          a  n U R                  s S n A $ S n A ff = fN)OSError__traceback__)es    8/opt/python-3.13.8/usr/lib/python3.13/test/test_raise.pyget_tbr
      s(    i s   
 
,',,c                        \ rS rSrS rS rSrg)Context   c                     U $ r    selfs    r	   	__enter__Context.__enter__   s        c                     g)NTr   )r   exc_type	exc_valueexc_tbs       r	   __exit__Context.__exit__   s    r   r   N__name__
__module____qualname____firstlineno__r   r   __static_attributes__r   r   r	   r   r      s    r   r   c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)	TestRaise   c                 j     e ! [         a%  nU R                  S[        U5      5         S nAg S nAff = f)NzNo active exception)failRuntimeErrorassertInstrr   r   s     r	   test_invalid_reraiseTestRaise.test_invalid_reraise   s0    	- 	9MM/Q88	9s    
2-2c                       [        5       e! [          a  nUne S nAff = f! [          a  nU R                  WU5         S nAg S nAff = fr   )
IndexErrorr%   assertIs)r   r   exc1exc2s       r	   test_reraiseTestRaise.test_reraise#   sN    		- l"   	&MM$%%	&s$   
 
" 
AAAc                 6    S nU R                  [        U5        g )Nc                  \     [        S5      e!    [        S5      e! [         a     e f = f= fNfoocaught	TypeErrorKeyErrorr   r   r	   reraise.TestRaise.test_except_reraise.<locals>.reraise0   s=    &&"8,, s    +
(+(+assertRaisesr9   r   r;   s     r	   test_except_reraiseTestRaise.test_except_reraise/   s    	 	)W-r   c                 6    S nU R                  [        U5        g )Nc                  F     [        S5      e!    [        S5      e! e = f= fr5   r8   r   r   r	   r;   /TestRaise.test_finally_reraise.<locals>.reraise<   s-    &&"8,,s      )r>   r:   r?   s     r	   test_finally_reraiseTestRaise.test_finally_reraise;   s    	 	(G,r   c                 D   ^ S mU4S jnU R                  [        U5        g )Nc                      e r   r   r   r   r	   nested_reraise5TestRaise.test_nested_reraise.<locals>.nested_reraiseG   s    r   c                  8   >  [        S5      e!   T " 5          g = fNr6   r9   )rI   s   r	   r;   .TestRaise.test_nested_reraise.<locals>.reraiseI   s     !&&! s    	r=   )r   r;   rI   s     @r	   test_nested_reraiseTestRaise.test_nested_reraiseF   s    		!
 	)W-r   c                       [        S5      e!   [        5       S e= f! [         aE  nU R                  UR                  [         5        U R	                  UR
                  5         S nAg S nAff = frL   )r9   
ValueErrorassertIsInstance__context__assertIsNone	__cause__r)   s     r	   test_raise_from_NoneTestRaise.test_raise_from_NoneP   s`    	+-&&- l, 	+!!!--;akk**	+s     
A-;A((A-c                 6    S nU R                  [        U5        g )Nc                  p     [        S5      e!   [        5           S S S 5        e ! , (       d  f       e = f= frL   )r9   r   r   r   r	   r;   -TestRaise.test_with_reraise1.<locals>.reraise[   s3    &&Y  Ys    5$	5
2	5r=   r?   s     r	   test_with_reraise1TestRaise.test_with_reraise1Z       	 	)W-r   c                 6    S nU R                  [        U5        g )Nc                  r     [        S5      e!   [        5          [        S5      e! , (       d  f       e = f= fr5   )r9   r   r:   r   r   r	   r;   -TestRaise.test_with_reraise2.<locals>.reraisee   s3    &&Y"8,, Ys    6%
3	6r=   r?   s     r	   test_with_reraise2TestRaise.test_with_reraise2d   r^   r   c                    ^ S nU" 5       m[        T5        U R                  [        U4S j5        U R                  [        U4S j5        g )Nc               3   6   #     [        S5      e!   Sv   e = f7f)Nr6      rM   r   r   r	   r;   -TestRaise.test_yield_reraise.<locals>.reraiseo   s#     &&s    c                     > [        T 5      $ r   nextgs   r	   <lambda>.TestRaise.test_yield_reraise.<locals>.<lambda>w   s	    T!Wr   c                     > [        T 5      $ r   ri   rk   s   r	   rm   rn   x   s	    ar   )rj   r>   r9   StopIteration)r   r;   rl   s     @r	   test_yield_reraiseTestRaise.test_yield_reraisen   s8    	 IQ)_5-9r   c                 F     " S S[         5      n Ue! [         a     g f = f)Nc                       \ rS rSrS rSrg)7TestRaise.test_erroneous_exception.<locals>.MyException{   c                     [        5       er   r&   r   s    r	   __init__@TestRaise.test_erroneous_exception.<locals>.MyException.__init__|   
    "n$r   r   Nr   r   r   r   ry   r    r   r   r	   MyExceptionru   {       %r   r}   )	Exceptionr%   r&   r   r}   s     r	   test_erroneous_exception"TestRaise.test_erroneous_exceptionz   s+    	%) 	%	- 		s    
  c                 r     " S S[         5      nU R                  [        5         Ue! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)@TestRaise.test_new_returns_invalid_instance.<locals>.MyException   c                     [        5       $ r   )object)clsargss     r	   __new__HTestRaise.test_new_returns_invalid_instance.<locals>.MyException.__new__   s	    xr   r   N)r   r   r   r   r   r    r   r   r	   r}   r      s     r   r}   )r   r>   r9   r   s     r	   !test_new_returns_invalid_instance+TestRaise.test_new_returns_invalid_instance   s-    	 ) 	  y) *)s   (
6c                 h    g ! [          a%  nU R                  [        U5      S5         S nAg S nAff = f)Nz(3,))AssertionErrorassertEqualr(   r)   s     r	   test_assert_with_tuple_arg$TestRaise.test_assert_with_tuple_arg   s.    	- 	-SVV,,	-s   
1,1r   N)r   r   r   r   r*   r1   r@   rE   rO   rW   r\   rb   rq   r   r   r   r    r   r   r	   r"   r"      s>    -
-
.	-.+..
:
--r   r"   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
	TestCause   c                       [         e! [         a    [        S ef = f! [         aD  nU R                  UR                  5        U R                  UR                  5        SUl        UeS nAff = f! [         a  nUn S nAOS nAff = fU R                  UR                  5        U R                  UR                  5        U R                  UR                  [         5        g )NF)
r9   r   rR   rU   rV   
assertTrue__suppress_context__assertFalserS   rT   )r   excr   s      r	   testCauseSyntaxTestCause.testCauseSyntax   s    		/#O  /$$./ !!#--0 8 89+0(		
  	A	 	!++&//0ammY7s4   
  
A-?A((A--A0 0
B:BBc                 v     [         Se! [         a%  nU R                  S[	        U5      5         S nAg S nAff = f)N   zexception cause)r-   r%   r9   r'   r(   r)   s     r	   test_invalid_causeTestCause.test_invalid_cause   s5    	-!# 	5MM+SV44	5s   	 
838c                      [         [        e! [          a*  nU R                  UR                  [        5         S nAg S nAff = fr   )r-   r:   r%   rS   rV   r)   s     r	   test_class_causeTestCause.test_class_cause   s6    	-(* 	9!!!++x88	9s    
A <Ac                      " S S[         5      n [        Ue! [         a%  nU R	                  S[        U5      5         S nAg S nAf[         a    U R                  S5         g f = f)Nc                   $    \ rS rSr\S 5       rSrg)FTestCause.test_class_cause_nonexception_result.<locals>.ConstructsNone   c                      g r   r   )r   kwargss     r	   r   NTestCause.test_class_cause_nonexception_result.<locals>.ConstructsNone.__new__   s    r   r   N)r   r   r   r   classmethodr   r    r   r   r	   ConstructsNoner      s     r   r   z1should have returned an instance of BaseExceptionzWrong kind of exception raised)BaseExceptionr-   r%   r9   r'   r(   )r   r   r   s      r	   $test_class_cause_nonexception_result.TestCause.test_class_cause_nonexception_result   sX    	] 		-.0 	WMMMsSTvVV 	8II67	8s    
A#AA#"A#c                     [        5       n [        Ue! [         a&  nU R                  UR                  U5         S nAg S nAff = fr   )r:   r-   r%   r.   rV   )r   causer   s      r	   test_instance_causeTestCause.test_instance_cause   s;    
	-%' 	.MM!++u--	.s    
A>Ac                 P     " S S[         5      n [        Ue! [         a     g f = f)Nc                       \ rS rSrS rSrg)3TestCause.test_erroneous_cause.<locals>.MyException   c                     [        5       er   rx   r   s    r	   ry   <TestCause.test_erroneous_cause.<locals>.MyException.__init__   r{   r   r   Nr|   r   r   r	   r}   r      r~   r   r}   )r   r-   r%   r&   r   s     r	   test_erroneous_causeTestCause.test_erroneous_cause   s-    	%) 	%	-+- 		s    
%%r   N)r   r   r   r   r   r   r   r   r   r   r    r   r   r	   r   r      s     8&----
-r   r   c                        \ rS rSrS rS rSrg)TestTraceback   c                      [        5       e! [          a4  nU R                  UR                  [        R
                  5         S nAg S nAff = fr   )r-   r%   rS   r   typesTracebackTyper)   s     r	   test_sets_traceback!TestTraceback.test_sets_traceback   s>    	-, 	H!!!//53F3FGG	Hs   
 
A
*AA
c                     [        5       n [        5       R                  U5      e! [         aL  nU R	                  UR
                  U5        U R                  UR
                  R                  U5         S nAg S nAff = fr   )r
   r-   with_tracebackr%   assertNotEqualr   r   tb_next)r   tbr   s      r	   test_accepts_traceback$TestTraceback.test_accepts_traceback   sb    X	-,--b11 	:4Q__44b99	:s   % 
A;AA66A;r   N)r   r   r   r   r   r   r    r   r   r	   r   r      s    --r   r   c                   &    \ rS rSrS rS rS rSrg)TestTracebackType   c                     [         er   )rR   r   s    r	   raiserTestTracebackType.raiser   s    r   c                 @    U R                  5         U R                  WR                  [
        R                  5        U R                  UR                  [        R                  " 5       5        U R                  UR                  [        5        U R                  UR                  [        5        U R                  UR                  R                  S 5        U R                  [        5         U?S S S 5        U R                  [        5         SUl        S S S 5        U R                  [         5         X"l        S S S 5        U R                  [         5         X"R                  l        S S S 5        S Ul        U R                  UR                  S 5        [#        5       nX2l        U R                  UR                  U5        g ! [         a  nUR                  n S nAGNS nAff = f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nasdf)r   r   r   rS   r   r   r   r.   tb_framesys	_getframetb_lastiint	tb_linenor>   r9   rR   r
   )r   r   r   new_tbs       r	   
test_attrsTestTracebackType.test_attrs   sm   	#KKM 	bjj%*=*=>bkk3==?3bkk3/bllC0bjj(($/ y)
 * y)BJ * z*J + z*!#JJ + 
bjj$'
bjj&)=  	#""B	# *) *) +* +*sG   F8 &GG-+G>H8
GGG
G*-
G;>
H
Hc                    [        5       n[        R                  " 5       n[        R                  " XSS5      nU R                  UR                  U5        U R                  UR                  U5        U R                  UR                  S5        U R                  UR                  S5        [        R                  " S USS5      nU R                  UR                  S 5        U R                  [        5         [        R                  " SUSS5        S S S 5        U R                  [        5         [        R                  " USSS5        S S S 5        U R                  [        5         [        R                  " XSS5        S S S 5        U R                  [        5         [        R                  " XSS5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ng= f! , (       d  f       g = f)Nrf      noznuh-uh)r
   r   r   r   r   r   r   r   r   r   r>   r9   )r   other_tbframer   s       r	   test_constructor"TestTracebackType.test_constructor  sg   8  !Q7X.e,a(q)  ua3T*y)eQ2 * y)$15 * y)q9 * y)H= *) *) *) *) *)s0   2F8)G	 GG+8
G	
G
G(+
G9r   N)r   r   r   r   r   r   r   r    r   r   r	   r   r      s    !*F>r   r   c                   b    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rSrg)TestContexti7  c                     [        5       n  Ue!   [        5       e= f! [         a&  nU R                  UR                  U5         S nAg S nAff = fr   )r-   r   r%   r.   rT   r   contextr   s      r	   $test_instance_context_instance_raise0TestContext.test_instance_context_instance_raise8  sJ    ,	-  i 	2MM!--11	2s     
AA		Ac                     [         n  Ue!   [        5       e= f! [         aB  nU R                  UR                  U5        U R                  UR                  U5         S nAg S nAff = fr   r-   r   r%   assertIsNotrT   rS   r   s      r	   !test_class_context_instance_raise-TestContext.test_class_context_instance_raiseD  s^    		-  i 	:Q]]G4!!!--99	:s     
A&8A!!A&c                     [         n  Ue!   [        e= f! [         aB  nU R                  UR                  U5        U R                  UR                  U5         S nAg S nAff = fr   r   r   s      r	   test_class_context_class_raise*TestContext.test_class_context_class_raiseQ  s\    		- 	:Q]]G4!!!--99	:s     
A"8AA"c                       SS-     U R                  S5        g !   [         e= f! [          a*  nU R                  UR                  [        5         S nAg S nAff = fNrf   r   No exception raisedr   r%   rS   rT   ZeroDivisionErrorr)   s     r	   test_c_exception_context$TestContext.test_c_exception_context^  sW    	-! II+, 	D!!!--1BCC	Ds    #& 
A AAc                       SS-    U R                  S5        g !   [            N= f! [         a*  nU R                  UR                  [
        5         S nAg S nAff = fr   )xyzzyr%   	NameErrorrS   rT   r   r)   s     r	   test_c_exception_raise"TestContext.test_c_exception_raisei  sU    	-! II+, 	D!!!--1BCC	Ds    $' 
A AAc                        [         e! [         e= f! [          a%  nU R                  UR                  5         S nAg S nAff = fr   )r   r%   rU   rT   r)   s     r	   test_noraise_finally TestContext.test_noraise_finallyt  s>    	-g 	-amm,,	-s     
A>Ac                       SS-    [         e! [         e= f! [          a*  nU R                  UR                  [        5         S nAg S nAff = fNrf   r   r   r)   s     r	   test_raise_finallyTestContext.test_raise_finally  sG    	-!g 	D!!!--1BCC	Ds       
A AAc                      " S S5      n U" 5          SS-    S S S 5        U R                  S5        g ! , (       d  f       N = f! [         a*  nU R                  UR                  [        5         S nAg S nAff = f)Nc                        \ rS rSrS rS rSrg)8TestContext.test_context_manager.<locals>.ContextManageri  c                     g r   r   r   s    r	   r   BTestContext.test_context_manager.<locals>.ContextManager.__enter__  s    r   c                     [           g r   )r   )r   tvr   s       r	   r   ATestContext.test_context_manager.<locals>.ContextManager.__exit__  s    r   r   Nr   r   r   r	   ContextManagerr    s    r   r  rf   r   r   )r%   r   rS   rT   r   )r   r  r   s      r	   test_context_manager TestContext.test_context_manager  sd    	 	
	-!! "
 II+, "! 	D!!!--1BCC	Ds*   A 3A 
AA 
A8 A33A8c                       SS-    g ! [          a  nUeS nAff = f! [          a%  nU R                  UR                  5         S nAg S nAff = fr  )r   rU   rT   r)   s     r	   test_cycle_brokenTestContext.test_cycle_broken  sL    	-!$   	-amm,,	-s$   	 
 
AAAc                       [           g ! [         a   n SS-     S nAg ! [         a    Uef = fS nAff = f! [         a/  nU R                  UR                  R                  5         S nAg S nAff = fr  )r   r   r   rU   rT   )r   ar   s      r	   test_reraise_cycle_broken%TestContext.test_reraise_cycle_broken  sj    		9 aC( G
  	9amm7788	9s1   
 
47 ,/47 
A0%A++A0c                     [        S5      n Ue! [          aC     [        S5      e! [          a     Of = f [        S5      e! [          a  nUn S nA OS nAff = ff = fU R                  UR                  U5        g )Nr   r7   new)r   r.   rT   )r   r   r   raiseds       r	   test_not_lastTestContext.test_not_last  s    I&
	M 	)) && 	 	f(('2sB    
A%
2A2AA
AAAAAc                 *   ^ ^ S mUU 4S jnU" 5         g )Nc               3       #     Sv   g ! f = f7f)Nrf   r   r   r   r	   gen"TestContext.test_3118.<locals>.gen  s     s   	 c                     > T" 5       n [        U 5          [        e!   A [        e= f! [         a*  nTR	                  UR
                  [        5         S nAg S nAff = fr   )rj   rR   r:   r   rS   rT   )rl   r   r   r   s     r	   f TestContext.test_3118.<locals>.f  sY    AGA#$$#"N A%%ammZ@@As    	%( 
A AAr   )r   r#  r   s   ` @r	   	test_3118TestContext.test_3118  s    	
	A 	
r   c                    ^ ^^^ SS K m " S S5      mUUUU 4S jm[        R                  " 5        nT" 5         T R                  [        UR
                  R                  5        S S S 5        g ! , (       d  f       g = f)Nr   c                       \ rS rSrS rSrg) TestContext.test_3611.<locals>.Ci  c                      SS-    g !   e = fr  r   r   s    r	   __del__(TestContext.test_3611.<locals>.C.__del__  s    aCs    r   N)r   r   r   r   r+  r    r   r   r	   Cr)    s    r   r-  c                     > T" 5       n   TR                     g ! [         a    A TR                  5         [        ef = f! [         aF  nTR                  UR                  S 5        TR                  UR                  [        5         S nAg S nAff = fr   )xAttributeErrorcollectr9   r   r   rT   rS   )r/  r   r-  r#  gcr   s     r	   r#   TestContext.test_3611.<locals>.f  sz    A
E$CC% $JJL#O	$
  E##AMM48%%amm^DDEs    ":= 
B<BB)r2  r   catch_unraisable_exceptionr   r   
unraisabler   )r   cmr-  r#  r2  s   ` @@@r	   	test_3611TestContext.test_3611  sX    	 		E 	E //1RC.0F0FG 211s   2A,,
A:r   N)r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r%  r7  r    r   r   r	   r   r   7  sD    
---	-	-	-	---93 ,Hr   r   c                        \ rS rSrS rS rSrg)TestRemovedFunctionalityi  c                 <     [         [        4e! [         a     g f = fr   )r-   r:   r%   r9   r   s    r	   test_tuples$TestRemovedFunctionality.test_tuples  s$    	-x(( 		s    
c                 (     Se! [         a     g f = frL   )r%   r9   r   s    r	   test_strings%TestRemovedFunctionality.test_strings  s    	-K 		s    
r   N)r   r   r   r   r<  r?  r    r   r   r	   r:  r:    s    --r   r:  __main__)__doc__testr   r   r   unittestr
   r   TestCaser"   r   r   r   r   r:  r   mainr   r   r	   <module>rG     s    %  
   y-!! y-zF-!! F-R-H%% -*?>)) ?>D{H(## {H|-x00 -$ zMMO r   