ó
    Æàh¾  ã                   óÜ   • S SS r SSKJr  SSKJr  SSKJr   " S S	5      r " S
 S\R                  5      r	 " S S\R                  5      r " S S\5      r " S S\5      r " S S\5      rg)z$Revision: 1.3 $é   éþÿÿÿé    )Úhtb)Úunittesté   )ÚDummyConsumerc                   ó8   • \ rS rSrSrS\SS4S jrS\4S jrSrg)	Ú
DummyClocké
   r   ÚwhenÚreturnNc                 ó   • Xl         g ©N©Útime)Úselfr   s     Ú\/root/1688_scrapy/alibaba-scraper/venv/lib/python3.13/site-packages/twisted/test/test_htb.pyÚsetÚDummyClock.set   s   € Ø	ó    c                 ó   • U R                   $ r   r   ©r   s    r   Ú__call__ÚDummyClock.__call__   s   € Øy‰yÐr   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Úintr   r   Ú__static_attributes__© r   r   r
   r
   
   s&   † Ø€Dð˜ð  ô ð˜#÷ r   r
   c                   ó   • \ rS rSrSrSrSrg)Ú
SomeBucketé   éd   é   r!   N)r   r   r   r   ÚmaxburstÚrater    r!   r   r   r#   r#      s   † Ø€HØƒDr   r#   c                   ó(   • \ rS rSrSS jrSS jrSrg)ÚTestBucketBaseé   Nc                 óv   • [         R                  U l        [        5       U l        U R                  [         l        g r   )r   r   Ú_realTimeFuncr
   Úclockr   s    r   ÚsetUpÚTestBucketBase.setUp   s"   € Ü ŸX™XˆÔÜ“\ˆŒ
Ø—:‘:Œr   c                 ó.   • U R                   [        l        g r   )r-   r   r   r   s    r   ÚtearDownÚTestBucketBase.tearDown   s   € Ø×%Ñ%Œr   )r-   r.   ©r   N)r   r   r   r   r/   r2   r    r!   r   r   r*   r*      s   † ô÷
&r   r*   c                   ó2   • \ rS rSrSS jrSS jrSS jrSrg)ÚBucketTestsé#   Nc                 ó^   • [        5       nUR                  S5      nU R                  SU5        g)z!
Testing the size of the bucket.
éè  r%   N)r#   ÚaddÚassertEqual©r   ÚbÚfits      r   ÚtestBucketSizeÚBucketTests.testBucketSize$   s(   € ô ‹LˆØe‰eD‹kˆØ×Ñ˜˜cÕ"r   c                 ó¶   • [        5       nUR                  S5      nU R                  R                  S5        UR                  S5      nU R	                  SU5        g)z"
Testing the bucket's drain rate.
r9   r   r$   N)r#   r:   r.   r   r;   r<   s      r   ÚtestBucketDrainÚBucketTests.testBucketDrain,   sE   € ô ‹LˆØe‰eD‹kˆØ
‰
‰rÔØe‰eD‹kˆØ×Ñ˜˜SÕ!r   c                 ó*  • [        5       nUR                  S5        U R                  R                  S5        UR	                  5       nU R                  U5        U R                  R                  S5        UR	                  5       nU R                  U5        g)zL
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=   Úemptys      r   Útest_bucketEmptyÚBucketTests.test_bucketEmpty6   sf   € ô ‹LˆØ	‰ˆbŒ	Ø
‰
‰qÔØ—‘“ˆØ×Ñ˜ÔØ
‰
‰rÔØ—‘“ˆØ‰˜Õr   r!   r4   )r   r   r   r   r?   rB   rJ   r    r!   r   r   r6   r6   #   s   † ô#ô"÷r   r6   c                   ó2   • \ rS rSrSS jrSS jrSS jrSrg)ÚBucketNestingTestséD   Nc                 ó´   • [         R                  U 5        [        5       U l        [        U R                  5      U l        [        U R                  5      U l        g r   )r*   r/   r#   ÚparentÚchild1Úchild2r   s    r   r/   ÚBucketNestingTests.setUpE   s9   € Ü×Ñ˜TÔ"Ü “lˆŒÜ  §¡Ó-ˆŒÜ  §¡Ó-ˆr   c                 ó”   • U R                   R                  S5        U R                  R                  S5      nU R                  SU5        g )NéZ   r   )rQ   r:   rR   r;   ©r   r>   s     r   ÚtestBucketParentSizeÚ'BucketNestingTests.testBucketParentSizeK   s4   € à‰‰˜ÔØk‰ko‰o˜bÓ!ˆØ×Ñ˜˜SÕ!r   c                 óì   • SU R                   l        U R                  R                  S5        U R                  R                  S5        U R                  R                  S5      nU R                  SU5        g )Nr   r%   r   )rP   r(   rQ   r:   r.   r   r;   rV   s     r   ÚtestBucketParentRateÚ'BucketNestingTests.testBucketParentRateQ   sR   € àˆ‰Ôà‰‰˜ÔØ
‰
‰rÔØk‰ko‰o˜cÓ"ˆð
 	×Ñ˜˜SÕ!r   )rQ   rR   rP   r4   )r   r   r   r   r/   rW   rZ   r    r!   r   r   rM   rM   D   s   † ô.ô"÷"r   rM   c                   ó2   • \ rS rSrSS jrSS jrSS jrSrg)ÚConsumerShaperTestséb   Nc                 óÊ   • [         R                  U 5        [        5       U l        [	        5       U l        [        R                  " U R                  U R
                  5      U l        g r   )	r*   r/   r   Ú
underlyingr#   Úbucketr   ÚShapedConsumerÚshapedr   s    r   r/   ÚConsumerShaperTests.setUpc   s>   € Ü×Ñ˜TÔ"Ü'›/ˆŒÜ “lˆŒÜ×(Ò(¨¯©¸$¿+¹+ÓFˆr   c                 óp  • SnU R                   R                  S5        U R                  R                  S5        U R                  R                  U5        U R                  R                  5         U R                  [        U R                  R                  5       5      XR                   R                  -  5        g )Nr   r%   Údxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)ra   r:   rc   Úwriter.   r   ÚresumeProducingr;   Úlenr`   Úgetvaluer(   )r   Údelta_ts     r   ÚtestRateÚConsumerShaperTests.testRatei   sz   € ð ˆØ‰‰˜ÔØ‰×Ñ˜)Ô$Ø
‰
‰wÔØ‰×#Ñ#Ô%Ø×Ñœ˜TŸ_™_×5Ñ5Ó7Ó8¸'ÇKÁK×DTÑDTÑ:TÕUr   c                 óÐ   • U R                  U R                  R                  S5        U R                  R	                  5         U R                  U R                  R                  S5        g )Nr   r   )r;   ra   Ú	_refcountrc   ÚstopProducingr   s    r   ÚtestBucketRefsÚ"ConsumerShaperTests.testBucketRefss   sF   € Ø×Ñ˜Ÿ™×.Ñ.°Ô2Ø‰×!Ñ!Ô#Ø×Ñ˜Ÿ™×.Ñ.°Õ2r   )ra   rc   r`   r4   )r   r   r   r   r/   rl   rq   r    r!   r   r   r]   r]   b   s   † ôGôV÷3r   r]   N)Ú__version__Útwisted.protocolsr   Útwisted.trialr   Útest_pcpr   r
   ÚBucketr#   ÚTestCaser*   r6   rM   r]   r!   r   r   Ú<module>ry      sm   ðð !  BÐ'€å !Ý "Ý #÷ñ ô—‘ô ô
&X×&Ñ&ô &ô.ô ôB"˜ô "ô<3˜.õ 3r   