
    i                         d dl mZ d dlZd dlmZmZ dZ G d dej                  Zd Z	 G d dej                  Z
ed	k    r ej                     dS dS )
    N)utilsocket皙?c                       e Zd Z ej        d          d             Zd Zd Z ee	d          rd Z
d Zd Zd	 Zd
S d
S )Testz4Timing causes the state to often be [start,finished]c                     g fd}t          j        |          }t          j        t          dz             dgk    s
J             |                                 |                     g d           d S )Nc                      	                       d           t          j        t          dz             n#                        d           Y nxY w                      d           d S )Nstartg      @exceptfinished)appendgeventsleepDELAY)states   A/usr/local/lib/python3.11/dist-packages/gevent/tests/test__api.pytestz'Test.test_killing_dormant.<locals>.test#   sl    'W%%%US[))))'X&&&&& LL$$$$$s	   15 A   r
   )r
   r   r   )r   spawnr   r   killassertEqual)selfr   gr   s      @r   test_killing_dormantzTest.test_killing_dormant   s    	% 	% 	% 	% 	% LUQY	!!!5!!!	 ? ? ?@@@@@    c                 d    d }|                      t          j        t          j        d|           d S )Nc                  F    t          j        dt           j        dd          S )Ng?r      )timeout_value)r   with_timeoutr    r   r   funcz+Test.test_nested_with_timeout.<locals>.func5   s    &sFL!1MMMMr   r   )assertRaisesr   Timeoutr    )r   r"   s     r   test_nested_with_timeoutzTest.test_nested_with_timeout4   s9    	N 	N 	N&.&*=sDIIIIIr   c                    t          j        t          j        t          t           j                  d          }t          j        d           t          j        |j        d           }|                                }t          |t                    s
J |            dt          |          v s$J t          t          |                                |                                 d S )Nr   r   Invalid switch)r   r   r   wrap_errorsAssertionErrorr   switchget
isinstancestrreprr   )r   pswitcherresults       r   test_sleep_invalid_switchzTest.test_sleep_invalid_switch9   s    L).&,GGKKQ<$//&.119969993v;;...S[[0A0A...r   
socketpairc                    t          j                    \  }}	 t          j        t	          j        t          t           j                  |                                          }t          j	                    j
                            t          |           |t          j        |           |                                }t          |t                    s
J |            dt!          |          v s$J t#          t!          |                                	 |                                 |                                 d S # |                                 |                                 w xY w)Nr'   )r   r3   r   r   r   r(   r)   	wait_readfilenoget_hublooprun_callbackswitch_Noner   r+   r,   r-   r.   close)r   r   sock1sock2r/   r1   s         r   _test_wait_read_invalid_switchz#Test._test_wait_read_invalid_switchD   s"   !,..LE5L!1.282B"D "D!&1 1   %22;BBB$L'''!&.99AA6AAA'3v;;666S[[8I8I6666 s   C8D; ;*E%c                 0    |                      d            d S Nr>   r   s    r   test_invalid_switch_NonezTest.test_invalid_switch_NoneT   s    //55555r   c                 0    |                      d           d S )Nr   rA   rB   s    r   test_invalid_switch_0zTest.test_invalid_switch_0W   s    //22222r   c                 0    |                      d           d S )NgMbP?rA   rB   s    r   test_invalid_switch_1zTest.test_invalid_switch_1Z   s    //66666r   N)__name__
__module____qualname__	greentestskipOnAppVeyorr   r%   r2   hasattrr   r>   rC   rE   rG   r!   r   r   r   r      s        YTUUA A VUA(J J J
   wv|$$ 7	 	 	 	6 	6 	6	3 	3 	3	7 	7 	7 	7 	717 7r   r   c                 0    |                      d            d S r@   )r*   )r   s    r   r:   r:   `   s    HHTNNNNNr   c                       e Zd Zd Zd ZdS )
TestTimersc                     dgfd}t          j        |           |                     dg           t          j                     t          j        d           |                     g            d S )Nr   c                  d    t          j        d j                   t          j        d           d S )Ng{Gz?g{Gz?)r   spawn_laterpopr   lsts   r   r"   z)TestTimers.test_timer_fired.<locals>.funci   s.    tSW---Lr   r   )r   r   r   r   r   r"   rV   s     @r   test_timer_firedzTestTimers.test_timer_firedf   s    c	 	 	 	 	 	Tqc""" 	Sb!!!!!r   c                     dgfd}t          j        |           t          j        d           |                     g            d S )Nr   c                  :    t          j         j                   d S r@   )r   r   rT   rU   s   r   r"   z4TestTimers.test_spawn_is_not_cancelled.<locals>.func{   s    L!!!!!r   r   )r   r   r   r   rW   s     @r   test_spawn_is_not_cancelledz&TestTimers.test_spawn_is_not_cancelledx   sa    c	" 	" 	" 	" 	" 	TSb!!!!!r   N)rH   rI   rJ   rX   r[   r!   r   r   rP   rP   d   s2        " " "$" " " " "r   rP   __main__)gevent.testingtestingrK   r   r   r   r   TestCaser   r:   rP   rH   mainr!   r   r   <module>ra      s   , # " " " " "         >7 >7 >7 >7 >79 >7 >7 >7F  " " " " "# " " "> zIN r   