o
    ,wÖia  ã                   @   s’   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ dZe 	ddd„ ¡ dd	d
„Z
G dd„ deejƒZG dd„ deƒZedkrGe ¡  dS dS )é    N)ÚEvent)ÚTimeAssertMixingš™™™™™©?é   c                   C   ó   d S ©N© r   r   r   ú`/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/gevent/tests/test__hub_join_timeout.pyÚ<lambda>   ó    r	   é   c                    s   t  ˆ ¡‡ ‡fdd„ƒ}|S )Nc                    s   t ˆƒD ]}ˆ | ƒ qd S r   )Úrange)ÚselfÚ_©ÚfuncÚrepetitionsr   r   Úf   s   
ÿzrepeated.<locals>.f)Ú	functoolsÚwraps)r   r   r   r   r   r   Úrepeated   s   r   c                   @   sT   e Zd Zedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZed	d
„ ƒZedd„ ƒZ	dS )ÚTestc                 C   sl   t  dd„ ¡}|  ¡  t jdd}W d   ƒ n1 sw   Y  |  |¡ |  |j|¡ |  |jd¡ d S )Nc                   S   ó   dS ©Né   r   r   r   r   r   r	      r
   z$Test.test_callback.<locals>.<lambda>é
   ©Útimeoutr   )ÚgeventÚspawnÚruns_in_no_timeÚwaitÚ
assertTrueÚdeadÚassertEqualÚvalue©r   ÚxÚresultr   r   r   Útest_callback   s   
ÿ
zTest.test_callbackc                 C   sb   t  tdd„ ¡}|  t¡ t jdd}W d   ƒ n1 sw   Y  |  |¡ |  |j|¡ d S )Nc                   S   r   r   r   r   r   r   r   r	   &   r
   z!Test.test_later.<locals>.<lambda>r   r   )r   Úspawn_laterÚ
SMALL_TICKÚruns_in_given_timer    r!   r"   r%   r   r   r   Ú
test_later#   s   ÿ
zTest.test_laterc                 C   s¤   t  ddd„ ¡}|  t¡ t jtd}W d   ƒ n1 sw   Y  |  |¡ |  |j|¡ | ¡  |  ¡  t  ¡ }W d   ƒ n1 sFw   Y  |  	|¡ d S )Nr   c                   S   r   r   r   r   r   r   r   r	   /   r
   z#Test.test_timeout.<locals>.<lambda>r   )
r   r)   r+   r*   r    ÚassertFalser"   Úkillr   r!   r%   r   r   r   Útest_timeout,   s   ÿ


ÿzTest.test_timeoutc                 C   sÔ   t  ddd„ ¡}tƒ }t  t|j¡}|  t¡ t  |g¡}W d   ƒ n1 s(w   Y  |  ||g¡ |  |j	|¡ |  
|j	¡ |  
|j¡ | ¡  |  ¡  t  ¡ }W d   ƒ n1 s^w   Y  |  
|¡ d S )Nr   c                   S   r   r   r   r   r   r   r   r	   =   r
   z!Test.test_event.<locals>.<lambda>)r   r)   r   r*   Úsetr+   r    r#   r-   r"   r!   Úis_setr.   r   )r   r&   ÚeventÚ	event_setr'   r   r   r   Ú
test_event:   s   ÿ

ÿzTest.test_eventc                 C   s\   t  ¡ jjddd dd„ ¡ |  ¡  t  ¡ }W d   ƒ n1 s"w   Y  |  |¡ d S )Nr   F)Úrefc                   S   r   r   r   r   r   r   r   r	   O   r
   z#Test.test_ref_arg.<locals>.<lambda>)r   Úget_hubÚloopÚtimerÚstartr   r    r!   )r   r'   r   r   r   Útest_ref_argL   s
   

ÿzTest.test_ref_argc                 C   sb   t  ¡ j d¡}| dd„ ¡ d|_|  ¡  t  ¡ }W d   ƒ n1 s%w   Y  |  |¡ d S )Nr   c                   S   r   r   r   r   r   r   r   r	   X   r
   z)Test.test_ref_attribute.<locals>.<lambda>F)	r   r6   r7   r8   r9   r5   r   r    r!   )r   Úwr'   r   r   r   Útest_ref_attributeT   s   

ÿzTest.test_ref_attributeN)
Ú__name__Ú
__module__Ú__qualname__r   r(   r,   r/   r4   r:   r<   r   r   r   r   r      s    
	



r   c                   @   s   e Zd ZdZdS )Ú	TestAgainzRepeat the same testsN)r=   r>   r?   Ú__doc__r   r   r   r   r@   _   s    r@   Ú__main__)r   )r   Úunittestr   Úgevent.coreÚgevent.eventr   Úgevent.testing.testcaser   r*   Úsignal_handlerr   ÚTestCaser   r@   r=   Úmainr   r   r   r   Ú<module>   s    
Hÿ