
    <|h	                         d dl Z d dlmZ  G d de      Z G d dej                        Zedk(  r ej                          yy)    Nc                       e Zd Zy)MyExceptionN)__name__
__module____qualname__     Z/var/www/html/test/engine/venv/lib/python3.12/site-packages/gevent/tests/test__issue330.pyr   r      s    r	   r   c                   H     e Zd Z fdZd Zd Zd Zd Zd Zd Z	d Z
 xZS )	
TestSwitchc                 J    t         t        |           ddg| _        d | _        y NF)superr   setUpswitched_tocaught)self	__class__s    r
   r   zTestSwitch.setUp   s#    j$%'!5>r	   c                 "    d| j                   |<   y )NT)r   )r   is     r
   should_never_runzTestSwitch.should_never_run   s    "r	   c                    t        j                  ||f       | j                  ddg| j                         | j	                  |j
                  t         j                         | j	                  |j
                  t         j                         | j                  |j                         | j                  |j                         | j                  |j                         | j                  |j                         y r   )
geventjoinallassertEqualr   assertIsInstancevalueGreenletExitassertIsNoneexc_info	exceptionr   gg2s      r
   checkzTestSwitch.check   s    2w%)9)9: 	aggv':':;bhh(;(;< 	!**%"++&!++&",,'r	   c                     t        j                  | j                  d      }t        j                  | j                  d      }t        j                  |       t        j                  |       | j	                  ||       y Nr      r   spawnr   killr%   r"   s      r
   test_gevent_killzTestSwitch.test_gevent_kill#   sR    LL..2\\$//3AB

1br	   c                     t        j                  | j                  d      }t        j                  | j                  d      }|j                          |j                          | j	                  ||       y r'   r)   r"   s      r
   test_greenlet_killzTestSwitch.test_greenlet_kill+   sN    LL..2\\$//3	
	

1br	   c                 $   t        j                  | j                  d      }t        j                  | j                  d      }|j                  t         j                         |j                  t         j                         | j                  ||       y r'   )r   r*   r   throwr   r%   r"   s      r
   
test_throwzTestSwitch.test_throw3   s`    LL..2\\$//3	##$
$$%

1br	   c                 l    	 	 t        j                  d       # t        $ r}|| _        Y d }~y d }~ww xY w)Nr   )r   sleepr   r   )r   es     r
   catcherzTestSwitch.catcher<   s3    	Q  	DKK	s    	3.3c                 n   t        j                  | j                        }|j                          t        j                          t        j
                  |t                      t        j                          | j                  | j                  t               | j                  |j                  t               y )N)r   r*   r5   startr3   r+   r   r   r   r   r!   )r   r#   s     r
   test_kill_exceptionzTestSwitch.test_kill_exceptionC   si     LL&		A{}%dkk;7!++{3r	   )r   r   r   r   r   r%   r,   r.   r1   r5   r8   __classcell__)r   s   @r
   r   r   
   s+    
#(4r	   r   __main__)
r   gevent.testingtesting	greentest	Exceptionr   TestCaser   r   mainr   r	   r
   <module>rA      sI     "	) 	D4## D4N zINN r	   