a
    	¼3j#  ã                   @   sN   d dl Z d dl mZ d dlZd dlmZ G dd„ de jƒZedkrJe  ¡  dS )é    N)Úmock)Ú
transportsc                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTransportTestsc                 C   s   t  ¡ }|  |ji ¡ d S ©N)ÚasyncioÚ	TransportÚassertEqualZ_extra©ÚselfÚ	transport© r   ú]/www/server/python_manager/versions/3.9.10/lib/python3.9/test/test_asyncio/test_transports.pyÚtest_ctor_extra_is_none   s    z&TransportTests.test_ctor_extra_is_nonec                 C   sN   t  ddi¡}|  d| d¡¡ |  | d¡¡ tƒ }|  || d|¡¡ d S )NÚextraÚinfoÚunknown)r   r   r   Zget_extra_infoZassertIsNoneÚobjectZassertIs)r
   r   Údefaultr   r   r   Útest_get_extra_info   s
    z"TransportTests.test_get_extra_infoc                    sX   t  ¡ ‰ G ‡ fdd„dtjƒ}|ƒ }| dtdƒtdƒg¡ |  dˆ j¡ ˆ  	d¡ d S )Nc                       s   e Zd Z‡ fdd„ZdS )z3TransportTests.test_writelines.<locals>.MyTransportc                    s   ˆ |ƒ d S r   r   )r
   Údata©Úwriterr   r   Úwrite   s    z9TransportTests.test_writelines.<locals>.MyTransport.writeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   ÚMyTransport   s   r   s   line1s   line2s   line3é   s   line1line2line3)
r   ÚMockr   r   Ú
writelinesÚ	bytearrayÚ
memoryviewr   Z
call_countZassert_called_with)r
   r   r   r   r   r   Útest_writelines   s    þzTransportTests.test_writelinesc                 C   sš   t  ¡ }|  t|j¡ |  t|j¡ |  t|jd¡ |  t|j¡ |  t|j¡ |  t|j	¡ |  t|j
¡ |  t|j¡ |  t|j¡ |  t|j¡ d S ©Nr   )r   r   ÚassertRaisesÚNotImplementedErrorÚset_write_buffer_limitsÚget_write_buffer_sizer   Z	write_eofZcan_write_eofZpause_readingZresume_readingZ
is_readingÚcloseÚabortr	   r   r   r   Útest_not_implemented'   s    ÿz#TransportTests.test_not_implementedc                 C   s*   t  ¡ }|  t|jd¡ |  t|j¡ d S r#   )r   ZDatagramTransportr$   r%   Úsendtor)   r	   r   r   r   Útest_dgram_not_implemented6   s    z)TransportTests.test_dgram_not_implementedc                 C   sd   t  ¡ }|  t|j¡ |  t|j¡ |  t|jd¡ |  t|jd¡ |  t|j¡ |  t|j	¡ d S )Nr   )
r   ZSubprocessTransportr$   r%   Zget_pidZget_returncodeZget_pipe_transportÚsend_signalÚ	terminateÚkillr	   r   r   r   Ú)test_subprocess_transport_not_implemented<   s    z8TransportTests.test_subprocess_transport_not_implementedc                 C   sÐ   G dd„ dt jt jƒ}t ¡ }||d}t ¡ |_|  |j¡ |  t	d¡ |j
ddd W d   ƒ n1 sn0    Y  |j
dd	d |  |j¡ |  | ¡ d
¡ |j
dd	d |  |j¡ |  | ¡ d¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )zKTransportTests.test_flowcontrol_mixin_set_write_limits.<locals>.MyTransportc                 S   s   dS )Ni   r   )r
   r   r   r   r'   K   s    zaTransportTests.test_flowcontrol_mixin_set_write_limits.<locals>.MyTransport.get_write_buffer_sizeN)r   r   r   r'   r   r   r   r   r   H   s   r   )Úloopzhigh.*must be >= lowr   r   )ÚhighÚlowé   é€   )r5   r4   é   )r5   r6   )r   Z_FlowControlMixinr   r   r   Z	_protocolZassertFalseZ_protocol_pausedZassertRaisesRegexÚ
ValueErrorr&   r   Zget_write_buffer_limitsZ
assertTrue)r
   r   r1   r   r   r   r   Ú'test_flowcontrol_mixin_set_write_limitsF   s    ÿ

,z6TransportTests.test_flowcontrol_mixin_set_write_limitsN)
r   r   r   r   r   r"   r*   r,   r0   r8   r   r   r   r   r   
   s   
r   Ú__main__)Zunittestr   r   r   ZTestCaser   r   Úmainr   r   r   r   Ú<module>   s   V