
    Yh                         S SK Jr  S SK Jr  S SKrS SKrSSKJr  SSKJr   " S S\5      r\	S	:X  a  S SK
r
\
R                  " 5         gg)
    )print_function)absolute_importN   )_test_extension)TestCasec                   V    \ 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)	CAPITests   c                 z    U R                  S[        R                  " [        R                  " S 5      5      5        g )N2   c                      g)Nr    r       Y/var/www/html/env/lib/python3.13/site-packages/greenlet/tests/test_extension_interface.py<lambda>'CAPITests.test_switch.<locals>.<lambda>   s    br   )assertEqualr   test_switchgreenletselfs    r   r   CAPITests.test_switch   s,    ++H,=,=j,IJ	Lr   c           	          S n[         R                   " U5      nU R                  S[        R                  " USSS95        g )Nc                 
    X-  $ Nr   xys     r   adder+CAPITests.test_switch_kwargs.<locals>.adder   s	    5Lr            r   )r   r   r   test_switch_kwargs)r   r   gs      r   r$   CAPITests.test_switch_kwargs   s6    	e$O>>qAKLr   c                     S n[         R                   " U5      R                  5       nU R                  S [        R                  " U5      5        g )Nc                      S n [         R                   " U 5      nUR                  5         [         R                  " 5       R                  R                  U5        [         R                  " 5       R                  R	                  [        S5      5        g )Nc                      [         R                  " 5       R                  R                  5         [         R                  " 5       R                  R                  5         [	        S5      e)Nz#Should never have reached this code)r   
getcurrentparentswitchAssertionErrorr   r   r   bar2CAPITests.test_setparent.<locals>.foo.<locals>.bar   sF    ##%,,335
 ##%,,335$%JKKr   zShould never reach this code)r   r,   r*   r+   throwr-   )r.   childs     r   foo%CAPITests.test_setparent.<locals>.foo   sg    L %%c*ELLN!((//6!((..=>@r   )r   r,   r   r   test_setparent)r   r2   	foo_childs      r   r4   CAPITests.test_setparent   s>    	@ %%c*113	==iHIr   c                 .    [         R                  " 5         g r   )r   test_getcurrentr   s    r   r8   CAPITests.test_getcurrent*   s    '')r   c                 R    U R                  S[        R                  " S 5      5        g )Nc                      g)Nr;   r   r   r   r   r   -CAPITests.test_new_greenlet.<locals>.<lambda>.   s    r   )r   r   test_new_greenletr   s    r   r>   CAPITests.test_new_greenlet-   s    o??LMr   c                 `    U R                  [        R                  [        R                  5        g r   )assertRaisesr   GreenletExitr   test_raise_dead_greenletr   s    r   test_raise_greenlet_dead"CAPITests.test_raise_greenlet_dead0   s"    !!?#K#K	Mr   c                 `    U R                  [        R                  [        R                  5        g r   )rA   r   errorr   test_raise_greenlet_errorr   s    r   rH   #CAPITests.test_raise_greenlet_error4   s     NNOEE	Gr   c                 H  ^ / mU4S jn[         R                   " U5      nUR                  5         [        R                  " U5        U R	                  [        T5      S5        U R                  [        TS   [        5      S5        U R	                  [        TS   5      SS5        g )Nc                    >  [         R                  " 5       R                  R                  5         g ! [         a*    T R                  [        R                  " 5       S   5         g [         R                   a    [        ef = f)Nr   )
r   r*   r+   r,   
ValueErrorappendsysexc_inforB   r-   )seens   r   r2   !CAPITests.test_throw.<locals>.foo;   s]    %##%,,335 /CLLN1-.(( %$$%s   -1 1A>$A>r   r   z"ValueError was not raised in foo()ztake that sucka!zmessage doesn't match)
r   r,   r   
test_throwr   len
assertTrue
isinstancerL   str)r   r2   r%   rP   s      @r   rR   CAPITests.test_throw8   s    	% c"	
""1%TA&tAw
+0	2 	QL#	%r   c                    U R                  [        5       n[        R                  " [        R
                  " 5       [        [        5       U 5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nz1throw() third argument must be a traceback object)
rA   	TypeErrorr   test_throw_exactr   r*   	Exceptionr   rV   	exceptionr   excs     r   test_non_traceback_param"CAPITests.test_non_traceback_paramN   sd    y)S,,##%	 * 	S]]+L	N *)s   9A==
Bc                 $   U R                  [        5       n[        R                  " [        R
                  " 5       [        5       [        5       S 5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nz0instance exception may not have a separate value)rA   rY   r   rZ   r   r*   r[   BaseExceptionr   rV   r\   r]   s     r   test_instance_of_wrong_type%CAPITests.test_instance_of_wrong_typeY   sf    y)S,,##%	 * 	S]]+K	M *)s   =B
Bc                    U R                  [        5       n[        R                  " [        R
                  " 5       SS S 5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nabcz1exceptions must be classes, or instances, not str)	rA   rY   r   rZ   r   r*   r   rV   r\   r]   s     r   test_not_throwableCAPITests.test_not_throwablee   sb    y)S,,##%	 * 	S]]+L	N *)s   -A11
A?r   N)__name__
__module____qualname____firstlineno__r   r$   r4   r8   r>   rD   rH   rR   r_   rc   rg   __static_attributes__r   r   r   r	   r	      sB    LMJ&*NMG%,	N
M	Nr   r	   __main__)
__future__r   r   rN   r    r   r   r	   ri   unittestmainr   r   r   <module>rs      sC    % & 
   bN bNJ zMMO r   