a
    	¼3jÐ  ã                   @   sT   d dl Z d dlZd dlZdd„ ZG dd„ dƒZG dd„ dejƒZedkrPe ¡  dS )	é    Nc                   C   s   t  d ¡ d S ©N)ÚasyncioZset_event_loop_policy© r   r   úb/www/server/python_manager/versions/3.9.10/lib/python3.9/test/test_asyncio/test_asyncio_waitfor.pyÚtearDownModule   s    r   c                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )ÚSlowTaskz? Task will run for this defined time, ignoring cancel requests gš™™™™™É?c                 C   s
   d| _ d S )NF)Úexited©Úselfr   r   r   Ú__init__   s    zSlowTask.__init__c                 Ã   sZ   t  ¡ | j }|t  ¡  }|dkr$qPzt |¡I d H  W q tjyL   Y q0 qd| _d S )Nr   T)ÚtimeÚ	monotonicÚTASK_TIMEOUTr   ÚsleepÚCancelledErrorr   )r
   ZexitatZtosleepr   r   r   Úrun   s    zSlowTask.runN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r   r   	   s   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚAsyncioWaitForTestc                 Ã   s\   t ƒ }t t | ¡ |jd ¡¡}t d¡I d H  | ¡  t |h¡I d H  |  	|j
¡ d S )Né   r   )r   r   Zcreate_taskÚwait_forr   r   r   ÚcancelÚwaitÚ
assertTruer   )r
   ÚtZwaitfortaskr   r   r   Ú atest_asyncio_wait_for_cancelled!   s    z3AsyncioWaitForTest.atest_asyncio_wait_for_cancelledc                 C   s   t  |  ¡ ¡ d S r   )r   r   r   r	   r   r   r   Útest_asyncio_wait_for_cancelled+   s    z2AsyncioWaitForTest.test_asyncio_wait_for_cancelledc                 Ã   sL   t ƒ }z t | ¡ |jd ¡I d H  W n tjy:   Y n0 |  |j¡ d S )Nr   )r   r   r   r   r   ÚTimeoutErrorr   r   )r
   r   r   r   r   Úatest_asyncio_wait_for_timeout.   s     z1AsyncioWaitForTest.atest_asyncio_wait_for_timeoutc                 C   s   t  |  ¡ ¡ d S r   )r   r   r    r	   r   r   r   Útest_asyncio_wait_for_timeout8   s    z0AsyncioWaitForTest.test_asyncio_wait_for_timeoutN)r   r   r   r   r   r    r!   r   r   r   r   r      s   

r   Ú__main__)	r   Zunittestr   r   r   ZTestCaser   r   Úmainr   r   r   r   Ú<module>   s   