B
    ÐH/\;  ã               @   s¢   d dl mZ d dlZd dlmZ d dlZd dlZye d¡j	Z
W n ek
rX   dZ
Y nX G dd„ deƒZdd„ ZeedƒrŽG d	d
„ d
ejƒZedkrže ¡  dS )é    )Úprint_functionNZcffic               @   s   e Zd ZdS )ÚExpectedN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú8lib/python3.7/site-packages/gevent/tests/test__signal.pyr      s   r   c               C   s   t dƒ‚d S )NÚ
TestSignal)r   r   r   r   r   Úraise_Expected   s    r
   ÚSIGALRMc               @   sV   e Zd ZdZejZdd„ Zdd„ Ze 	ej
o>ejo>ee d¡k d¡ejdd	„ ƒƒZd
S )r	   Fc             C   s   |   ttjtjd¡ d S )Né   )ZassertRaisesÚ	TypeErrorÚgeventÚsignalr   )Úselfr   r   r   Útest_handler   s    zTestSignal.test_handlerc          
   C   s  t  tjt¡}|jdks&tt|jƒƒ‚d|_|jdks:t‚d|_z´t d¡ yt  d¡ tdƒ‚W n6 t	k
r˜ } zt
|ƒdksˆt|ƒ‚W d d }~X Y nX t d¡ yt  d¡ tdƒ‚W n6 t	k
rð } zt
|ƒdksàt|ƒ‚W d d }~X Y nX W d | ¡  X d S )NFTr   é   zmust raise Expectedr	   )r   r   r   r
   ÚrefÚAssertionErrorÚreprÚalarmZsleepr   ÚstrZcancel)r   ZsigÚexr   r   r   Ú
test_alarm    s&    

&

*zTestSignal.test_alarmz1.11.3zPhttps://bitbucket.org/cffi/cffi/issues/352/systemerror-returned-a-result-with-anc             C   sÌ   dd l }|jst‚dd l}tjr.ddlm} ntjrBddl	m} nt}y||ƒ W nt t
k
rÆ   tjslt‚dd l}xLt|j ¡ ƒD ]:}y|jd kr¤td||jd W q„ tk
r¼   w„Y q„X q„W Y nX d S )Nr   )ÚreloadzModule has None __cached__)Úfile)Zgevent.signalr   r   ÚsiteÚ	greentestZPY34Ú	importlibr   ÚPY3Úimpr   ZPY36ÚsysÚsetÚmodulesÚvaluesÚ
__cached__ÚprintÚstderrÚAttributeError)r   r   r   Zreload_moduler!   Úmr   r   r   Útest_reload8   s&    !



zTestSignal.test_reloadN)r   r   r   Zerror_fatalr   ZLARGE_TIMEOUTZ__timeout__r   r   ZskipIfr   ZCFFI_BACKENDÚcffi_versionÚpkg_resourcesZparse_versionZignores_leakcheckr*   r   r   r   r   r	      s   
r	   Ú__main__)Z
__future__r   r   Zgevent.testingZtestingr   r   r,   Zget_distributionZparsed_versionr+   Ú	Exceptionr   r
   ÚhasattrZTestCaser	   r   Úmainr   r   r   r   Ú<module>   s   

a