
    Yf                         d dd         Z ddlmZ ddlmZ ddlmZ  G d d	          Z G d
 dej                  Z	 G d dej
                  Z G d de          Z G d de          Z G d de          ZdS )z$Revision: 1.3 $       )htb)unittest   )DummyConsumerc                   .    e Zd ZdZdeddfdZdefdZdS )
DummyClockr   whenreturnNc                     || _         d S Ntime)selfr   s     G/var/www/html/env/lib/python3.11/site-packages/twisted/test/test_htb.pysetzDummyClock.set   s    			    c                     | j         S r   r   r   s    r   __call__zDummyClock.__call__   s
    yr   )__name__
__module____qualname__r   intr   r    r   r   r
   r
   
   sV        D     #      r   r
   c                       e Zd ZdZdZdS )
SomeBucketd      N)r   r   r   maxburstrater   r   r   r   r      s        HDDDr   r   c                       e Zd ZddZddZdS )TestBucketBaser   Nc                 p    t           j        | _        t                      | _        | j        t           _        d S r   )r   r   _realTimeFuncr
   clockr   s    r   setUpzTestBucketBase.setUp   s$     X\\
:r   c                 (    | j         t          _        d S r   )r&   r   r   r   s    r   tearDownzTestBucketBase.tearDown   s    %r   r   N)r   r   r   r(   r*   r   r   r   r$   r$      s<           
& & & & & &r   r$   c                   &    e Zd ZddZddZddZdS )BucketTestsr   Nc                 x    t                      }|                    d          }|                     d|           dS )z1
        Testing the size of the bucket.
          r   N)r   addassertEqualr   bfits      r   testBucketSizezBucketTests.testBucketSize$   s8     LLeeDkkc"""""r   c                     t                      }|                    d          }| j                            d           |                    d          }|                     d|           dS )z2
        Testing the bucket's drain rate.
        r/   
      N)r   r0   r'   r   r1   r2   s      r   testBucketDrainzBucketTests.testBucketDrain,   s[     LLeeDkk
reeDkkS!!!!!r   c                 X   t                      }|                    d           | j                            d           |                                }|                     |           | j                            d           |                                }|                     |           dS )z\
        L{htb.Bucket.drip} returns C{True} if the bucket is empty after that drip.
        r8   	   r7   N)r   r0   r'   r   dripassertFalse
assertTrue)r   r3   emptys      r   test_bucketEmptyzBucketTests.test_bucketEmpty6   s     LL	b			
q
rr   r+   )r   r   r   r5   r9   r@   r   r   r   r-   r-   #   sP        # # # #" " " "     r   r-   c                   &    e Zd ZddZddZddZdS )BucketNestingTestsr   Nc                     t                               |            t                      | _        t          | j                  | _        t          | j                  | _        d S r   )r$   r(   r   parentchild1child2r   s    r   r(   zBucketNestingTests.setUpE   sG    T""" ll -- --r   c                     | j                             d           | j                            d          }|                     d|           d S )NZ   r7   )rE   r0   rF   r1   r   r4   s     r   testBucketParentSizez'BucketNestingTests.testBucketParentSizeK   sE    koob!!S!!!!!r   c                     d| j         _        | j                            d           | j                            d           | j                            d          }|                     d|           d S )Nr   r   r7   )rD   r"   rE   r0   r'   r   r1   rI   s     r   testBucketParentRatez'BucketNestingTests.testBucketParentRateQ   se    
rkooc""
 	S!!!!!r   r+   )r   r   r   r(   rJ   rL   r   r   r   rB   rB   D   sP        . . . ." " " "" " " " " "r   rB   c                   &    e Zd ZddZddZddZdS )ConsumerShaperTestsr   Nc                     t                               |            t                      | _        t	                      | _        t          j        | j        | j                  | _        d S r   )	r$   r(   r   
underlyingr   bucketr   ShapedConsumershapedr   s    r   r(   zConsumerShaperTests.setUpc   sH    T"""'// ll($+FFr   c                 f   d}| j                             d           | j                            d           | j                            |           | j                                         |                     t          | j	        
                                          || j         j        z             d S )Nr7   r   dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rQ   r0   rS   writer'   r   resumeProducingr1   lenrP   getvaluer"   )r   delta_ts     r   testRatezConsumerShaperTests.testRatei   s     )$$$
w##%%%T_557788'DKDT:TUUUUUr   c                     |                      | j        j        d           | j                                         |                      | j        j        d           d S )Nr   r   )r1   rQ   	_refcountrS   stopProducingr   s    r   testBucketRefsz"ConsumerShaperTests.testBucketRefss   sR    .222!!###.22222r   r+   )r   r   r   r(   r[   r_   r   r   r   rN   rN   b   sX        G G G GV V V V3 3 3 3 3 3r   rN   N)__version__twisted.protocolsr   twisted.trialr   test_pcpr   r
   Bucketr   TestCaser$   r-   rB   rN   r   r   r   <module>rf      sU   !B' ! ! ! ! ! ! " " " " " " # # # # # #              
& & & & &X& & & &    .   B" " " " " " " "<3 3 3 3 3. 3 3 3 3 3r   