Ë
    oj¾  ã                   óÜ   — 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     ú7/usr/lib/python3/dist-packages/twisted/test/test_htb.pyÚsetzDummyClock.set   s	   € Øˆ�	ó    c                 ó   — | j                   S r   r   ©r   s    r   Ú__call__zDummyClock.__call__   s   € Ø�y‰yÐ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)Ú
SomeBucketéd   é   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"   € Ü ŸX™XˆÔÜ“\ˆŒ
Ø—:‘:Œ�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ˆØ�e‰e�D‹kˆØ×Ñ˜˜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ˆØ�e‰e�D‹kˆØ�
‰
�‰�rÔØ�e‰e�D‹kˆØ×Ñ˜˜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 )NéZ   r7   )rE   r0   rF   r1   ©r   r4   s     r   ÚtestBucketParentSizez'BucketNestingTests.testBucketParentSizeK   s4   € à�‰�‰˜ÔØ�k‰k�o‰o˜bÓ!ˆØ×Ñ˜˜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ÔØ�k‰k�o‰o˜cÓ"ˆð
 	×Ñ˜˜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¸'ÀDÇKÁK×DTÑDTÑ: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   