o
    ÑtPfÆ  ã                   @   sl   d dl mZ d dlZd dlmZmZ dZG dd„ dejƒZdd„ Z	G dd	„ d	ejƒZ
ed
kr4e ¡  dS dS )é    N)ÚutilÚsocketçš™™™™™¹?c                   @   s\   e Zd Ze d¡dd„ ƒZdd„ Zdd„ Zee	dƒr,d	d
„ Z
dd„ Zdd„ Zdd„ ZdS dS )ÚTestz4Timing causes the state to often be [start,finished]c                    sV   g ‰ ‡ fdd„}t  |¡}t  td ¡ ˆ dgksJ ˆ ƒ‚| ¡  |  ˆ g d¢¡ d S )Nc                      s>   zˆ   d¡ t td ¡ W n	   ˆ   d¡ Y ˆ   d¡ d S )NÚstartg      @ÚexceptÚfinished)ÚappendÚgeventÚsleepÚDELAY© ©Ústater   úW/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__api.pyÚtest#   s   
z'Test.test_killing_dormant.<locals>.testé   r   )r   r   r   )r
   Úspawnr   r   ÚkillÚassertEqual)Úselfr   Úgr   r   r   Útest_killing_dormant   s   

zTest.test_killing_dormantc                 C   s    dd„ }|   tjtjd|¡ d S )Nc                   S   s   t jdt jdddS )Ngš™™™™™É?r   é   )Útimeout_value)r
   Úwith_timeoutr   r   r   r   r   Úfunc5   s   z+Test.test_nested_with_timeout.<locals>.funcr   )ÚassertRaisesr
   ÚTimeoutr   ©r   r   r   r   r   Útest_nested_with_timeout4   s   zTest.test_nested_with_timeoutc                 C   sp   t  t tt j¡d¡}t  d¡ t  |jd ¡}| ¡ }t|tƒs$J |ƒ‚dt	|ƒv s2J t
t	|ƒƒƒ‚| ¡  d S )Nr   r   úInvalid switch)r
   r   r   Úwrap_errorsÚAssertionErrorr   ÚswitchÚgetÚ
isinstanceÚstrÚreprr   )r   ÚpÚswitcherÚresultr   r   r   Útest_sleep_invalid_switch9   s   
zTest.test_sleep_invalid_switchÚ
socketpairc                 C   sª   t  ¡ \}}zEt t tt j¡| ¡ ¡}t 	¡ j
 t|¡ |d ur&t |¡ | ¡ }t|tƒs3J |ƒ‚dt|ƒv sAJ tt|ƒƒƒ‚W | ¡  | ¡  d S | ¡  | ¡  w )Nr!   )r   r-   r
   r   r   r"   r#   Ú	wait_readÚfilenoÚget_hubÚloopÚrun_callbackÚswitch_Noner   r%   r&   r'   r(   Úclose)r   r   Úsock1Úsock2r)   r+   r   r   r   Ú_test_wait_read_invalid_switchD   s"   
ÿþ
ÿ
z#Test._test_wait_read_invalid_switchc                 C   ó   |   d ¡ d S ©N©r7   ©r   r   r   r   Útest_invalid_switch_NoneT   ó   zTest.test_invalid_switch_Nonec                 C   ó   |   d¡ d S )Nr   r:   r;   r   r   r   Útest_invalid_switch_0W   r=   zTest.test_invalid_switch_0c                 C   r>   )Ngü©ñÒMbP?r:   r;   r   r   r   Útest_invalid_switch_1Z   r=   zTest.test_invalid_switch_1N)Ú__name__Ú
__module__Ú__qualname__Ú	greentestÚskipOnAppVeyorr   r    r,   Úhasattrr   r7   r<   r?   r@   r   r   r   r   r      s    

	èr   c                 C   r8   r9   )r$   )r   r   r   r   r3   `   r=   r3   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
TestTimersc                    sL   dg‰ ‡ fdd„}t  |¡ |  ˆ dg¡ t  ¡  t  d¡ |  ˆ g ¡ d S )Nr   c                      s   t  dˆ j¡ t  d¡ d S )Ng{®Gáz„?g{®Gáz”?)r
   Úspawn_laterÚpopr   r   ©Úlstr   r   r   i   s   z)TestTimers.test_timer_fired.<locals>.funcr   )r
   r   r   r   r   r   rJ   r   Útest_timer_firedf   s   

zTestTimers.test_timer_firedc                    s6   dg‰ ‡ fdd„}t  |¡ t  d¡ |  ˆ g ¡ d S )Nr   c                      s   t  ˆ j¡ d S r9   )r
   r   rI   r   rJ   r   r   r   {   s   z4TestTimers.test_spawn_is_not_cancelled.<locals>.funcr   )r
   r   r   r   r   r   rJ   r   Útest_spawn_is_not_cancelledx   s
   

z&TestTimers.test_spawn_is_not_cancelledN)rA   rB   rC   rL   rM   r   r   r   r   rG   d   s    rG   Ú__main__)Úgevent.testingÚtestingrD   r
   r   r   r   ÚTestCaser   r3   rG   rA   Úmainr   r   r   r   Ú<module>   s   Cÿ