o
    U˟i{                     @   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{Gz?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   b/var/www/apps/myagent/mysuperagent/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    
