
    Vh                         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y)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y)
DummyClockr   whenreturnNc                     || _         y Ntime)selfr   s     E/home/dcms/DCMS/lib/python3.12/site-packages/twisted/test/test_htb.pysetzDummyClock.set   s	    	    c                     | j                   S r   r   r   s    r   __call__zDummyClock.__call__   s    yyr   )__name__
__module____qualname__r   intr   r    r   r   r
   r
   
   s&    D  # r   r
   c                       e Zd ZdZdZy)
SomeBucketd      N)r   r   r   maxburstrater   r   r   r   r      s    HDr   r   c                       e Zd ZddZddZy)TestBucketBaseNc                 v    t         j                  | _        t               | _        | j                  t         _        y r   )r   r   _realTimeFuncr
   clockr   s    r   setUpzTestBucketBase.setUp   s"     XX\
::r   c                 .    | j                   t        _        y 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y)BucketTestsNc                 ^    t               }|j                  d      }| j                  d|       y)z1
        Testing the size of the bucket.
          r   N)r   addassertEqualr   bfits      r   testBucketSizezBucketTests.testBucketSize$   s(     LeeDkc"r   c                     t               }|j                  d      }| j                  j                  d       |j                  d      }| j	                  d|       y)z2
        Testing the bucket's drain rate.
        r/   
      N)r   r0   r'   r   r1   r2   s      r   testBucketDrainzBucketTests.testBucketDrain,   sE     LeeDk

reeDkS!r   c                 *   t               }|j                  d       | j                  j                  d       |j	                         }| j                  |       | j                  j                  d       |j	                         }| j                  |       y)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   sf     L	b	

q

rr   r+   )r   r   r   r5   r9   r@   r   r   r   r-   r-   #   s    #"r   r-   c                   $    e Zd ZddZddZddZy)BucketNestingTestsNc                     t         j                  |        t               | _        t        | j                        | _        t        | j                        | _        y r   )r$   r(   r   parentchild1child2r   s    r   r(   zBucketNestingTests.setUpE   s9    T" l - -r   c                     | j                   j                  d       | j                  j                  d      }| j                  d|       y )NZ   r7   )rE   r0   rF   r1   r   r4   s     r   testBucketParentSizez'BucketNestingTests.testBucketParentSizeK   s4    kkoob!S!r   c                     d| j                   _        | j                  j                  d       | j                  j                  d       | j                  j                  d      }| j                  d|       y )Nr   r   r7   )rD   r"   rE   r0   r'   r   r1   rI   s     r   testBucketParentRatez'BucketNestingTests.testBucketParentRateQ   sR    

rkkooc"
 	S!r   r+   )r   r   r   r(   rJ   rL   r   r   r   rB   rB   D   s    .""r   rB   c                   $    e Zd ZddZddZddZy)ConsumerShaperTestsNc                     t         j                  |        t               | _        t	               | _        t        j                  | j                  | j
                        | _        y r   )	r$   r(   r   
underlyingr   bucketr   ShapedConsumershapedr   s    r   r(   zConsumerShaperTests.setUpc   s>    T"'/ l(($++Fr   c                 r   d}| j                   j                  d       | j                  j                  d       | j                  j                  |       | j                  j                          | j                  t        | j                  j                               || j                   j                  z         y )Nr7   r   dxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)rQ   r0   rS   writer'   r   resumeProducingr1   lenrP   getvaluer"   )r   delta_ts     r   testRatezConsumerShaperTests.testRatei   s|     )$

w##%T__5578'DKKDTDT:TUr   c                     | j                  | j                  j                  d       | j                  j	                          | j                  | j                  j                  d       y )Nr   r   )r1   rQ   	_refcountrS   stopProducingr   s    r   testBucketRefsz"ConsumerShaperTests.testBucketRefss   sF    ..2!!#..2r   r+   )r   r   r   r(   r[   r_   r   r   r   rN   rN   b   s    GV3r   rN   N)__version__twisted.protocolsr   twisted.trialr   test_pcpr   r
   Bucketr   TestCaser$   r-   rB   rN   r   r   r   <module>rf      sm    !B' ! " #  
&X&& &. B" "<3. 3r   