o
    ÑtPf{  ã                   @   s€   d dl mZ d dlZd dlmZ d dlZdZejsed Z	ned Z	G dd„ dej
ƒZG dd	„ d	ej
ƒZed
kr>e ¡  dS dS )é    N)Úget_hubg{®Gáz„?g       @g      4@c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚTestDirectRaiseFc              
   C   sB   zt j‚ t jy  } z|jrJ t|ƒƒ‚W Y d }~d S d }~ww ©N©ÚgeventÚTimeoutÚpendingÚrepr)ÚselfÚt© r   ú[/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/tests/test__timeout.pyÚtest_direct_raise_class   s    €ÿz'TestDirectRaise.test_direct_raise_classc              
   C   s\   t  ¡ }z|‚ t jy- } z||u sJ ||fƒ‚|jr"J t|ƒƒ‚W Y d }~d S d }~ww r   r   )r
   Útimeoutr   r   r   r   Útest_direct_raise_instance   s    €þz*TestDirectRaise.test_direct_raise_instanceN)Ú__name__Ú
__module__Ú__qualname__Úswitch_expectedr   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	d
„ Zdd„ Zdd„ Z	ddd„Z
dd„ Zdd„ Zdd„ Zdd„ Zejdd„ ƒZdS )ÚTestc              
   C   s\   zt ƒ  ¡  |  d¡ W d S  tjy- } z||ur‚ |r!| ¡  |W  Y d }~S d }~ww ©NzMust raise Timeout)r   ÚswitchÚfailr   r   Úclose)r
   r   r   Úexr   r   r   Ú_test!   s   
€ûz
Test._testc                 C   s(   |  ¡  |  |d¡ |  ¡  |  |d¡S )NFT)Ústartr   ©r
   r   r   r   r   Ú_check_expires,   s   zTest._check_expiresc                 C   ó   t  t¡}|  |¡ d S r   ©r   r   ÚSHOULD_EXPIREr   r   r   r   r   Útest_expires3   ó   
zTest.test_expiresc                 C   s   t  td¡}|  |¡ d S )NFr    r   r   r   r   Útest_expires_false7   s   zTest.test_expires_falsec                 C   s.   t  td¡}|  |¡}|  t|ƒ d¡¡ d S ©NÚXXX)r   r   r!   r   Ú
assertTrueÚstrÚendswith©r
   r   r   r   r   r   Útest_expires_str=   s   
zTest.test_expires_strc                 C   s(   |   dt|ƒv pdt|ƒv t|ƒ¡ d S )Nzexceptions must bezexceptions must derive)r'   r(   )r
   r   r   r   r   Úassert_type_errD   s   (zTest.assert_type_errc              
   C   s¶  t  ttƒ ¡}| ¡  ztƒ  ¡  |  d¡ W n ty. } z|  	|¡ W Y d }~nd }~ww | 
¡  G dd„ dƒ}t  t|¡}| ¡  ztƒ  ¡  |  d¡ W n4 tyn } z|  tjd¡ |  	|¡ W Y d }~nd }~w   |  tjd¡ t ¡ d }|  ||¡ Y | 
¡  t  t|ƒ ¡}| ¡  ztƒ  ¡  |  d¡ W n4 ty¾ } z|  tjd¡ |  	|¡ W Y d }~nd }~w   |  tjd¡ t ¡ d }|  ||¡ Y | 
¡  d S )NzMost raise TypeErrorc                   @   s   e Zd ZdS )z1Test.test_expires_non_exception.<locals>.OldStyleN)r   r   r   r   r   r   r   ÚOldStyleR   s    r-   zMust raise OldStylez-Py3 raises a TypeError for non-BaseExceptionsz+Old style classes can only be raised on Py2r   )r   r   r!   Úobjectr   r   r   r   Ú	TypeErrorr,   r   r'   Ú	greentestÚPY3ÚPY2ÚsysÚexc_infoÚassertEqual)r
   r   r   r-   r   r   r   r   Útest_expires_non_exceptionH   sN   
€ÿ
€
€zTest.test_expires_non_exceptionTc              
   C   s~   z| t ƒ  ¡  W d   ƒ n1 sw   Y  W n tjy3 } z||ur'‚ |W  Y d }~S d }~ww |r=|  d¡ d S d S r   )r   r   r   r   r   )r
   r   Úraisesr   r   r   r   Ú_check_context_manager_expiresp   s   ÿ€€ýÿz#Test._check_context_manager_expiresc                 C   r   r   )r   r   r!   r8   r   r   r   r   Útest_context_manager|   r#   zTest.test_context_managerc                 C   s8   t  td¡}| j|dd |  t|ƒ d¡t|ƒ¡ d S )NF)r7   z(silent)©r   r   r!   r8   r'   r(   r)   r   r   r   r   Útest_context_manager_false€   s   zTest.test_context_manager_falsec                 C   s4   t  td¡}|  |¡}|  t|ƒ d¡t|ƒ¡ d S r%   r:   r*   r   r   r   Útest_context_manager_str†   s   
zTest.test_context_manager_strc                 C   s>   t  t¡}| ¡  | ¡  t  t¡ |  |j|¡ | 	¡  d S r   )
r   r   r!   r   ÚcancelÚsleepÚSHOULD_NOT_EXPIREÚassertFalser   r   r   r   r   r   Útest_cancel‹   s   

zTest.test_cancelc                 C   s„   |   tj¡ t ttjt¡ W d   ƒ n1 sw   Y  tƒ }tjttjt|d}|  ||¡ tjttjt|d}|  	|¡ d S )N)Útimeout_value)
ÚassertRaisesr   r   Úwith_timeoutr!   r>   r?   r.   ÚassertIsÚassertIsNone)r
   ÚXÚrr   r   r   Útest_with_timeout“   s   ÿzTest.test_with_timeoutN)T)r   r   r   r   r   r"   r$   r+   r,   r6   r8   r9   r;   r<   rA   r0   Úignores_leakcheckrI   r   r   r   r   r      s    
(r   Ú__main__)Úgevent.testingÚtestingr0   r   Ú
gevent.hubr   r3   r!   ÚRUNNING_ON_CIr?   ÚTestCaser   r   r   Úmainr   r   r   r   Ú<module>   s    
ÿ