
    i	                         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	                     dS dS )    Nc                       e Zd ZdS )MyExceptionN)__name__
__module____qualname__     F/usr/local/lib/python3.11/dist-packages/gevent/tests/test__issue330.pyr   r      s        Dr	   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                 v    t          t          |                                            ddg| _        d | _        d S NF)superr   setUpswitched_tocaught)self	__class__s    r
   r   zTestSwitch.setUp   s6    j$%%'''!5>r	   c                     d| j         |<   d S )NT)r   )r   is     r
   should_never_runzTestSwitch.should_never_run   s    "r	   c                    t          j        ||f           |                     ddg| j                   |                     |j        t           j                   |                     |j        t           j                   |                     |j                   |                     |j                   |                     |j	                   |                     |j	                   d S r   )
geventjoinallassertEqualr   assertIsInstancevalueGreenletExitassertIsNoneexc_info	exceptionr   gg2s      r
   checkzTestSwitch.check   s    2w%)9::: 	agv':;;;bh(;<<< 	!*%%%"+&&&!+&&&",'''''r	   c                     t          j        | j        d          }t          j        | j        d          }t          j        |           t          j        |           |                     ||           d S Nr      r   spawnr   killr%   r"   s      r
   test_gevent_killzTestSwitch.test_gevent_kill#   s^    L.22\$/33AB

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

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

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