o
    tPfv                     @   s   d dl Z d dlmZ ddlmZ ddlmZ ddlmZ dZdZ	eZ
d	Zejr)d
ZdZed ZeZG dd deZG dd deeZG dd deeZdS )    N)perf_counter   )sysinfo)	leakcheck)TestCasegMbP?g{Gz?g)\(?g      ?g?g       @c                   @   s@   e Zd ZeZeZeZdd Z			d
ddZ
dddZdd	 ZdS )_DelayWaitMixinc                 C   s   t d)Nzoverride me in subclass)NotImplementedError)selftimeout r   V/var/www/html/humari/django-venv/lib/python3.10/site-packages/gevent/testing/timing.pywait2   s   z_DelayWaitMixin.waitNc                 C   s6   |s| j n|}|s| jn|}| ||| ||  d S N)_default_delay_min_adj_default_delay_max_adjassertTimeWithinRange)r	   r
   delaydelay_min_adjdelay_max_adjr   r   r   _check_delay_bounds5   s   z#_DelayWaitMixin._check_delay_boundsc                 C   sv   |d u r| j }t|d|}t j  t }z| |}W | |t | | j	| j
 |S | |t | | j	| j
 w )Nseconds)_default_wait_timeoutgetattrgeventget_hubloop
update_nowr   r   r   r   r   )r	   r
   r   startresultr   r   r   _wait_and_check>   s    z_DelayWaitMixin._wait_and_checkc                 C   sp   t jjtdd}z*| t j}| jdd W d    n1 s w   Y  | |j| W |  d S |  w )NF)refr   r
   )	r   Timeout	start_newSMALLEST_RELIABLE_DELAYassertRaisesr   assertIs	exceptionclose)r	   r
   excr   r   r   test_outer_timeout_is_not_lostP   s   z._DelayWaitMixin.test_outer_timeout_is_not_lost)NNr   )__name__
__module____qualname__
SMALL_TICKr   SMALL_TICK_MIN_ADJr   SMALL_TICK_MAX_ADJr   r   r   r   r*   r   r   r   r   r   ,   s    

	r   c                   @   s&   e Zd ZeZeZeZe	j
dd ZdS )AbstractGenericWaitTestCasec                 C   s   |   }| | d S r   )r   assertIsNone)r	   r   r   r   r   test_returns_none_after_timeouta   s   z;AbstractGenericWaitTestCase.test_returns_none_after_timeoutN)r+   r,   r-   
LARGE_TICKr   LARGE_TICK_MIN_ADJr   LARGE_TICK_MAX_ADJr   r   ignores_leakcheckr3   r   r   r   r   r1   Z   s    r1   c                   @   s2   e Zd ZejZdd Zdd Zdd Zdd Zd	S )
AbstractGenericGetTestCasec                 C   s   d S r   r   r	   r   r   r   cleanupm   s   z"AbstractGenericGetTestCase.cleanupc                 C   sD   |  | j | jtd W d    n1 sw   Y  |   d S Nr!   )r%   r"   r   r.   r:   r9   r   r   r   test_raises_timeout_numberp   s   z5AbstractGenericGetTestCase.test_raises_timeout_numberc              
   C   st   t | j}z(z| j|d W n t jy( } z| || W Y d }~nd }~ww W |  n|  w |   d S r;   )r   r"   r   r   r&   r(   r:   )r	   r
   exr   r   r   test_raises_timeout_Timeoutv   s   z6AbstractGenericGetTestCase.test_raises_timeout_Timeoutc                 C   s   t d}tj| j|d}z4| t }| j|d | |j| |   W d    n1 s.w   Y  W |	  d S W |	  d S |	  w )Nzexpected error)r'   r!   )
RuntimeErrorr   r"   r   r%   r   r&   r'   r:   r(   )r	   errorr
   r)   r   r   r   *test_raises_timeout_Timeout_exc_customized   s   
zEAbstractGenericGetTestCase.test_raises_timeout_Timeout_exc_customizedN)	r+   r,   r-   r   r"   r:   r<   r>   rA   r   r   r   r   r8   h   s    
r8   )r   gevent._compatr    r   r   testcaser   r$   r.   r/   r0   RUNNING_ON_APPVEYORr4   r5   r6   objectr   r1   r8   r   r   r   r   <module>   s"   .