HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/test/__pycache__/test_pcp.cpython-38.pyc
U


W[1�@sPddd�ZddlmZddlmZGdd�d�ZGdd	�d	�ZGd
d�de�ZGdd
�d
ej�Z	Gdd�d�Z
Gdd�d�ZGdd�de
ej�ZGdd�de
ej�Z
Gdd�deej�ZGdd�deej�ZGdd�dej�ZGdd�dej�ZGdd�d�ZGd d!�d!eej�ZGd"d#�d#eej�ZGd$d%�d%ej�ZGd&d'�d'ej�Zd(S))z$Revision: 1.5 $�����)�unittest)�pcpc@s(eZdZdZdd�Zdd�Zdd�ZdS)	�DummyTransportz A dumb transport to wrap around.cCs
g|_dS�N)�_writes��self�r�7/usr/lib/python3/dist-packages/twisted/test/test_pcp.py�__init__%szDummyTransport.__init__cCs|j�|�dSr)r�append�r
�datarrr�write(szDummyTransport.writecCsd�|j�S)N�)�joinrr	rrr�getvalue+szDummyTransport.getvalueN)�__name__�
__module__�__qualname__�__doc__r
rrrrrrr"src@s8eZdZdZdZdZdd�Zdd�Zdd�Zdd	�Z	d
S)�
DummyProducerFcCs
||_dSr)�consumer)r
rrrrr
3szDummyProducer.__init__cCsd|_d|_dS)NTF)�resumed�pausedr	rrr�resumeProducing6szDummyProducer.resumeProducingcCs
d|_dS�NT)rr	rrr�pauseProducing:szDummyProducer.pauseProducingcCs
d|_dSr)�stoppedr	rrr�
stopProducing=szDummyProducer.stopProducingN)
rrrrr rr
rrr!rrrrr.src@s0eZdZdZdZdZdd�Zdd�Zdd	�ZdS)
�
DummyConsumerNFTcCs||f|_dSr)�producer)r
r#Z	streamingrrr�registerProducerFszDummyConsumer.registerProducercCs
d|_dSr)�unregisteredr	rrr�unregisterProducerIsz DummyConsumer.unregisterProducercCs
d|_dSr)�finishedr	rrr�finishLszDummyConsumer.finish)	rrrr#r'r%r$r&r(rrrrr"Asr"c@s"eZdZejZdd�Zdd�ZdS)�TransportInterfaceTestscCst�|_|�|j�|_dSr)r"�
underlying�
proxyClass�	transportr	rrr�setUpRszTransportInterfaceTests.setUpcCs|j�d�dS�Nz
some bytes)r,rr	rrr�	testWriteVsz!TransportInterfaceTests.testWriteN)rrrr�BasicProducerConsumerProxyr+r-r/rrrrr)Osr)c@s0eZdZdZdd�Zdd�Zdd�Zdd	�Zd
S)�ConsumerInterfaceTestz�Test ProducerConsumerProxy as a Consumer.

    Normally we have ProducingServer -> ConsumingTransport.

    If I am to go between (Server -> Shaper -> Transport), I have to
    play the role of Consumer convincingly for the ProducingServer.
    cCs&t�|_|�|j�|_t|j�|_dSr)r"r*r+rrr#r	rrrr-bszConsumerInterfaceTest.setUpcCs"|j�|jd�|�|jj�dSr)rr$r#�assertFalserr	rrr�testRegisterPushgsz&ConsumerInterfaceTest.testRegisterPushcCs>|j�|jd�|j��d|j_|j��|�|jj�dS�NF)rr$r#r&rrr2r	rrr�testUnregisterss


z$ConsumerInterfaceTest.testUnregistercCs>|j�|jd�|j��d|j_|j��|�|jj�dSr4)rr$r#r(rrr2r	rrr�
testFinish~s


z ConsumerInterfaceTest.testFinishN)rrrrr-r3r5r6rrrrr1Ys
r1c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�ProducerInterfaceTestz�Test ProducerConsumerProxy as a Producer.

    Normally we have ProducingServer -> ConsumingTransport.

    If I am to go between (Server -> Shaper -> Transport), I have to
    play the role of Producer convincingly for the ConsumingTransport.
    cCst�|_|�|j�|_dSr)r"rr+r#r	rrrr-�szProducerInterfaceTest.setUpcCs|�|jjd|j�dS)Nr)�assertEqualrr#r	rrr�testRegistersProducer�sz+ProducerInterfaceTest.testRegistersProducercCs,|j��|j�d�|�|j��d�dS)N�yakkity yakz*Paused producer should not have sent data.)r#rrr2rrr	rrr�	testPause�s

�zProducerInterfaceTest.testPausecCs6|j��|j��|j�d�|�|j��d�dS)Nr:)r#rrrr8rrr	rrr�
testResume�s

z ProducerInterfaceTest.testResumecCs.|j��|j��|�t|jj�dd�dS)Nrz Resume triggered an empty write.)r#rrr8�lenrrr	rrr�testResumeNoEmptyWrite�s


�z,ProducerInterfaceTest.testResumeNoEmptyWritecCs6|j��|j�d�|j��|�|j��d�dS)Nzbuffer this)r#rrrr8rrr	rrr�testResumeBuffer�s

z&ProducerInterfaceTest.testResumeBuffercCs,|j��|j�d�|�|j��d�dS)Nr:z+Stopped producer should not have sent data.)r#r!rr2rrr	rrr�testStop�s

�zProducerInterfaceTest.testStopN)rrrrr-r9r;r<r>r?r@rrrrr7�sr7c@seZdZejZdS)�PCP_ConsumerInterfaceTestsN�rrrrr0r+rrrrrA�srAc@seZdZejZdS)�PCPII_ConsumerInterfaceTestsN�rrrr�ProducerConsumerProxyr+rrrrrC�srCc@seZdZejZdS)�PCP_ProducerInterfaceTestsNrBrrrrrF�srFc@seZdZejZdS)�PCPII_ProducerInterfaceTestsNrDrrrrrG�srGc@s&eZdZdZejZdd�Zdd�ZdS)�ProducerProxyTestszFProducer methods on me should be relayed to the Producer I proxy.
    cCs,|�d�|_t|j�|_|j�|jd�dSr)r+�proxyr�parentProducerr$r	rrrr-�szProducerProxyTests.setUpcCs|j��|�|jj�dSr)rIr!�
assertTruerJr r	rrrr@�s
zProducerProxyTests.testStopN)	rrrrrr0r+r-r@rrrrrH�srHc@s6eZdZdZejZdd�Zdd�Zdd�Z	dd	�Z
d
S)�ConsumerProxyTestszFConsumer methods on me should be relayed to the Consumer I proxy.
    cCst�|_|�|j�|_dSr)r"r*r+rr	rrrr-�szConsumerProxyTests.setUpcCs"|j�d�|�|j��d�dSr.)rrr8r*rr	rrrr/�szConsumerProxyTests.testWritecCs|j��|�|jj�dSr)rr(rKr*r'r	rrrr6�s
zConsumerProxyTests.testFinishcCs|j��|�|jj�dSr)rr&rKr*r%r	rrrr5�s
z!ConsumerProxyTests.testUnregisterN)rrrrrr0r+r-r/r6r5rrrrrL�srLc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�PullProducerTestcCs6t�|_|�|j�|_t|j�|_|j�|jd�dSr)r"r*r+rIrrJr$r	rrrr-�szPullProducerTest.setUpcCs"|j�d�|�|j��d�dS)N�helloz+Pulling Consumer got data before it pulled.)rIrr2r*rr	rrr�testHoldWrites�s�zPullProducerTest.testHoldWritescCs,|j�d�|j��|�|j��d�dS)NrN)rIrrr8r*rr	rrr�testPull�s
zPullProducerTest.testPullcCsX|j�d�|j�d�|j��t|jj�}|�|dd|f�|�|j��d�dS)Nzhello Zsunshine�z(Pull resulted in %d writes instead of 1.zhello sunshine)rIrrr=r*rr8r)r
Znwritesrrr�testMergeWrites�s

�z PullProducerTest.testMergeWritescCs,|j��|j�d�|�|j��d�dS)Nr)rIrrr8r*rr	rrr�
testLateWrites
zPullProducerTest.testLateWriteN)rrrr-rOrPrRrSrrrrrM�s

rMc@seZdZGdd�dej�ZdS)�PCP_PullProducerTestsc@seZdZdZdS)z PCP_PullProducerTests.proxyClassFN�rrr�iAmStreamingrrrrr+sr+NrBrrrrrTsrTc@seZdZGdd�dej�ZdS)�PCPII_PullProducerTestsc@seZdZdZdS)z"PCPII_PullProducerTests.proxyClassFNrUrrrrr+sr+NrDrrrrrWsrWc@sFeZdZdZejZdd�Zdd�Zdd�Z	dd	�Z
d
d�Zdd
�ZdS)�BufferedConsumerTestsz=As a consumer, ask the producer to pause after too much data.cCs>t�|_|�|j�|_d|j_t|j�|_|j�|jd�dS)N�dT�r"r*r+rIZ
bufferSizerrJr$r	rrrr-s
zBufferedConsumerTests.setUpcCs"|j�|jd�|�|jj�dSr4)rIr$rJrKrr	rrr�testRegisterPull"sz&BufferedConsumerTests.testRegisterPullcCs|j��|�|jj�dSr)rIrr2rJrr	rrr�testPauseIntercept's
z(BufferedConsumerTests.testPauseInterceptcCs&|j��|j��|�|jj�dSr)rIrrr2rJrr	rrr�testResumeIntercept+s

z)BufferedConsumerTests.testResumeInterceptcCsT|j��|�|jjd�|j�d�|�|jjd�|j�d�|�|jj�dS)zMake sure I say "when."zdon't pause yetZ3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxN)rIrr2rJrrrKr	rrr�testTriggerPause3s
z&BufferedConsumerTests.testTriggerPausecCsR|j��|j�d�|�|jjd�|j��|�|jjd�|�|jj�dS)z3Make sure I resumeProducing when my buffer empties.Zfxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxzshould be pausedzProducer should have resumed.N)	rIrrrKrJrrr2ZproducerPausedr	rrr�testTriggerResume>s


�z'BufferedConsumerTests.testTriggerResumeN)
rrrrrrEr+r-r[r\r]r^r_rrrrrXsrXc@s6eZdZGdd�dej�Zdd�Zdd�Zdd�Zd	S)
�BufferedPullTestsc@seZdZdZdd�ZdS)zBufferedPullTests.proxyClassFcCs$tj�||dd��tt|�d�S)NrY)rrE�_writeSomeData�minr=rrrrraNsz+BufferedPullTests.proxyClass._writeSomeDataN)rrrrVrarrrrr+Ksr+cCs>t�|_|�|j�|_d|j_t|j�|_|j�|jd�dS)NrYFrZr	rrrr-Rs
zBufferedPullTests.setUpcCs$d|j_|j��|�|jj�dSr4)rJrrIrrKr	rrr�testResumePullZs
z BufferedPullTests.testResumePullcCs>|j��|j�d�|�|j��d�|�|jjdg�dS)NZidatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumZddatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumdatumZdatum)rIrrr8r*rZ_bufferr	rrr�testLateWriteBufferingas
z(BufferedPullTests.testLateWriteBufferingN)	rrrrrEr+r-rcrdrrrrr`Jsr`N)�__version__Z
twisted.trialrZtwisted.protocolsrrrr"ZTestCaser)r1r7rArCrFrGrHrLrMrTrWrXr`rrrr�<module>s&
./#5