o
    Óó·i¾  ã                   @   s–   d dd… Z ddlmZ ddlmZ ddlmZ G dd	„ d	ƒZG d
d„ dejƒZ	G dd„ dej
ƒZG dd„ deƒZG dd„ deƒZG dd„ deƒZdS )z$Revision: 1.3 $é   éþÿÿÿé    )Úhtb)Úunittesté   )ÚDummyConsumerc                   @   s0   e Zd ZdZdeddfdd„Zdefdd„ZdS )	Ú
DummyClockr   ÚwhenÚreturnNc                 C   s
   || _ d S ©N©Útime)Úselfr	   © r   ú[C:\Users\psant\Downloads\PAF backend\school\venv\Lib\site-packages\twisted/test/test_htb.pyÚset   s   
zDummyClock.setc                 C   s   | j S r   r   ©r   r   r   r   Ú__call__   s   zDummyClock.__call__)Ú__name__Ú
__module__Ú__qualname__r   Úintr   r   r   r   r   r   r   
   s    r   c                   @   s   e Zd ZdZdZdS )Ú
SomeBucketéd   é   N)r   r   r   ZmaxburstÚrater   r   r   r   r      s    r   c                   @   s    e Zd Zddd„Zddd„ZdS )ÚTestBucketBaser
   Nc                 C   s   t j| _tƒ | _| jt _d S r   )r   r   Ú_realTimeFuncr   Úclockr   r   r   r   ÚsetUp   s   zTestBucketBase.setUpc                 C   s   | j t_d S r   )r   r   r   r   r   r   r   ÚtearDown   s   zTestBucketBase.tearDown©r
   N)r   r   r   r   r    r   r   r   r   r      s    
r   c                   @   ó*   e Zd Zd	dd„Zd	dd„Zd	dd„ZdS )
ÚBucketTestsr
   Nc                 C   s    t ƒ }| d¡}|  d|¡ dS )z1
        Testing the size of the bucket.
        éè  r   N)r   ÚaddÚassertEqual©r   ÚbÚfitr   r   r   ÚtestBucketSize$   s   
zBucketTests.testBucketSizec                 C   s6   t ƒ }| d¡}| j d¡ | d¡}|  d|¡ dS )z2
        Testing the bucket's drain rate.
        r$   é
   é   N)r   r%   r   r   r&   r'   r   r   r   ÚtestBucketDrain,   s
   

zBucketTests.testBucketDrainc                 C   sP   t ƒ }| d¡ | j d¡ | ¡ }|  |¡ | j d¡ | ¡ }|  |¡ dS )z\
        L{htb.Bucket.drip} returns C{True} if the bucket is empty after that drip.
        r,   é	   r+   N)r   r%   r   r   ZdripZassertFalseÚ
assertTrue)r   r(   Úemptyr   r   r   Útest_bucketEmpty6   s   

zBucketTests.test_bucketEmptyr!   )r   r   r   r*   r-   r1   r   r   r   r   r#   #   s    


r#   c                   @   r"   )
ÚBucketNestingTestsr
   Nc                 C   s.   t  | ¡ tƒ | _t| jƒ| _t| jƒ| _d S r   )r   r   r   ÚparentÚchild1Úchild2r   r   r   r   r   E   s   
zBucketNestingTests.setUpc                 C   s(   | j  d¡ | j d¡}|  d|¡ d S )NéZ   r+   )r4   r%   r5   r&   ©r   r)   r   r   r   ÚtestBucketParentSizeK   s   z'BucketNestingTests.testBucketParentSizec                 C   s<   d| j _| j d¡ | j d¡ | j d¡}|  d|¡ d S )Nr   r   r+   )r3   r   r4   r%   r   r   r&   r7   r   r   r   ÚtestBucketParentRateQ   s
   z'BucketNestingTests.testBucketParentRater!   )r   r   r   r   r8   r9   r   r   r   r   r2   D   s    

r2   c                   @   r"   )
ÚConsumerShaperTestsr
   Nc                 C   s0   t  | ¡ tƒ | _tƒ | _t | j| j¡| _d S r   )	r   r   r   Ú
underlyingr   Úbucketr   ZShapedConsumerÚshapedr   r   r   r   r   c   s   
zConsumerShaperTests.setUpc                 C   sT   d}| j  d¡ | j d¡ | j |¡ | j ¡  |  t| j	 
¡ ƒ|| j j ¡ d S )Nr+   r   Zdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r<   r%   r=   Úwriter   r   ZresumeProducingr&   Úlenr;   Úgetvaluer   )r   Zdelta_tr   r   r   ÚtestRatei   s   
"zConsumerShaperTests.testRatec                 C   s.   |   | jjd¡ | j ¡  |   | jjd¡ d S )Nr   r   )r&   r<   Z	_refcountr=   ZstopProducingr   r   r   r   ÚtestBucketRefss   s   
z"ConsumerShaperTests.testBucketRefsr!   )r   r   r   r   rA   rB   r   r   r   r   r:   b   s    


r:   N)Ú__version__Ztwisted.protocolsr   Ztwisted.trialr   Ztest_pcpr   r   ZBucketr   ZTestCaser   r#   r2   r:   r   r   r   r   Ú<module>   s   

!