o
    ¯b	  ã                   @   sr   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 G dd„ dej
ƒZG dd„ dej
ƒZG d	d
„ d
e	jƒZdS )é    )ÚBytesIO)ÚabstractÚprotocol)ÚbasicÚloopback)Úunittestc                   @   s   e Zd ZdZdd„ ZdS )ÚBufferingServeró    c                 C   s   |  j |7  _ d S ©N)Úbuffer)ÚselfÚdata© r   ú:/usr/lib/python3/dist-packages/twisted/test/test_tpfile.pyÚdataReceived   s   zBufferingServer.dataReceivedN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚFileSendingClientc                 C   s
   || _ d S r
   )Úf)r   r   r   r   r   Ú__init__   s   
zFileSendingClient.__init__c                    s4   t  ¡ }| ˆ jˆ jdd„ ¡}| ‡ fdd„¡ d S )Nc                 S   ó   | S r
   r   ©Úxr   r   r   Ú<lambda>   ó    z2FileSendingClient.connectionMade.<locals>.<lambda>c                    s
   ˆ j  ¡ S r
   )Ú	transportÚloseConnection)Úr©r   r   r   r      s   
 )r   Ú
FileSenderÚbeginFileTransferr   r   ÚaddCallback)r   ÚsÚdr   r    r   ÚconnectionMade   s   z FileSendingClient.connectionMadeN)r   r   r   r   r&   r   r   r   r   r      s    r   c                   @   r   )ÚFileSenderTestsc                    s<   d‰t ƒ ‰ ttˆƒƒ}t ˆ |¡}| ‡ ‡‡fdd„¡ |S )Ns„  xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123123c                    s   ˆ  ˆ jˆ¡S r
   )ÚassertEqualr   r   ©r$   r   ÚtestStrr   r   r   $   s    z1FileSenderTests.testSendingFile.<locals>.<lambda>)r   r   r   r   ÚloopbackTCPr#   )r   Úcr%   r   r)   r   ÚtestSendingFile   s   zFileSenderTests.testSendingFilec                 C   sN   t  ¡ }t ¡ }d|_tdƒ}| ||dd„ ¡}|  |j¡ |  	|j
d¡ d S )Né   r	   c                 S   r   r
   r   r   r   r   r   r   -   r   z6FileSenderTests.testSendingEmptyFile.<locals>.<lambda>z0producer unregistered with deferred being called)r   r!   r   ÚFileDescriptorÚ	connectedr   r"   ÚassertIsNoneÚproducerÚ
assertTrueÚcalled)r   Ú
fileSenderÚconsumerÚ	emptyFiler%   r   r   r   ÚtestSendingEmptyFile'   s   z$FileSenderTests.testSendingEmptyFileN)r   r   r   r-   r8   r   r   r   r   r'      s    	r'   N)Úior   Útwisted.internetr   r   Útwisted.protocolsr   r   Útwisted.trialr   ÚProtocolr   r   ÚTestCaser'   r   r   r   r   Ú<module>   s   
