o
    ¼>h¾  ã                   @   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   úu/var/www/vedio/testing/chatpythonscript.ninositsolution.com/env/lib/python3.10/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   Ú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   ÚdripÚassertFalseÚ
assertTrue)r   r)   Úemptyr   r   r   Útest_bucketEmpty6   s   

zBucketTests.test_bucketEmptyr"   )r   r   r   r+   r.   r4   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,   )r7   r&   r8   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,   )r6   r   r7   r&   r   r   r'   r:   r   r   r   ÚtestBucketParentRateQ   s
   z'BucketNestingTests.testBucketParentRater"   )r   r   r   r    r;   r<   r   r   r   r   r5   D   s    

r5   c                   @   r#   )
ÚConsumerShaperTestsr
   Nc                 C   s0   t  | ¡ tƒ | _tƒ | _t | j| j¡| _d S r   )	r   r    r   Ú
underlyingr   Úbucketr   Ú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   Údxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r?   r&   rA   Úwriter   r   ÚresumeProducingr'   Úlenr>   Úgetvaluer   )r   Údelta_tr   r   r   ÚtestRatei   s   
"zConsumerShaperTests.testRatec                 C   s.   |   | jjd¡ | j ¡  |   | jjd¡ d S )Nr   r   )r'   r?   Ú	_refcountrA   ÚstopProducingr   r   r   r   ÚtestBucketRefss   s   
z"ConsumerShaperTests.testBucketRefsr"   )r   r   r   r    rH   rK   r   r   r   r   r=   b   s    


r=   N)Ú__version__Útwisted.protocolsr   Útwisted.trialr   Útest_pcpr   r   ÚBucketr   ÚTestCaser   r$   r5   r=   r   r   r   r   Ú<module>   s   

!