HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/test_streams.cpython-38.pyc
U

/D�gې�@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZzddlZWne
k
r�dZYnXddlZddlmZdd�ZGdd	�d	ej�Zed
kr�e��dS)zTests for streams.py.�N)�mock)�support)�utilscCst�d�dS�N)�asyncioZset_event_loop_policy�rr�=/opt/cppython/lib/python3.8/test/test_asyncio/test_streams.py�tearDownModulesr	cspeZdZdZ�fdd�Z�fdd�Ze�d�dd��Zd	d
�Z	dd�Z
ejd
d��Z
dd�Ze�edkd�dd��Zeje�edkd�dd���Zdd�Zdd�Zejdd��Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Z d1d2�Z!d3d4�Z"d5d6�Z#d7d8�Z$d9d:�Z%d;d<�Z&d=d>�Z'd?d@�Z(dAdB�Z)dCdD�Z*dEdF�Z+dGdH�Z,dIdJ�Z-dKdL�Z.dMdN�Z/dOdP�Z0dQdR�Z1dSdT�Z2dUdV�Z3dWdX�Z4dYdZ�Z5d[d\�Z6d]d^�Z7ejd_d`��Z8e�e9j:dakdb�dcdd��Z;dedf�Z<dgdh�Z=didj�Z>dkdl�Z?dmdn�Z@dodp�ZAdqdr�ZBdsdt�ZCdudv�ZDdwdx�ZEdydz�ZFd{d|�ZGd}d~�ZHdd��ZId�d��ZJd�d��ZKd�d��ZL�ZMS)��StreamTestssline1
line2
line3
cs$t���t��|_|�|j�dSr)�super�setUprZnew_event_loop�loop�set_event_loop��self��	__class__rrrs

zStreamTests.setUpcs,t�|j�|j��t��t���dSr)�
test_utils�run_brieflyr
�close�gcZcollectr�tearDownrrrrr#s
zStreamTests.tearDownzasyncio.streams.eventscCst��}|�|j|jj�dSr)r�StreamReader�assertIs�_loopZget_event_loop�return_value)rZm_events�streamrrr�test_ctor_global_loop+sz!StreamTests.test_ctor_global_loopc	s�g�|j��fdd��|�t��|j�|�\}}W5QRX|�d�|��}|j�|�}|�|d�|��}|j�|�}|�	|�
d��|��|��g�dS)Ncs
��|�Sr��append�r
�ctx��messagesrr�<lambda>2�z7StreamTests._basetest_open_connection.<locals>.<lambda>�GET / HTTP/1.0

�HTTP/1.0 200 OK
�

Test message)r
�set_exception_handler�assertWarns�DeprecationWarning�run_until_complete�write�readline�assertEqual�read�
assertTrue�endswithr�r�open_connection_fut�reader�writer�f�datarr"r�_basetest_open_connection0s
z%StreamTests._basetest_open_connectionc	Cs6t���$}tj|jd|ji�}|�|�W5QRXdS�Nr
)r�run_test_serverr�open_connection�addressr
r9�r�httpdZconn_futrrr�test_open_connection?s


�z StreamTests.test_open_connectionc	Cs4t���"}tj|j|jd�}|�|�W5QRXdS�N�r
)r�run_test_unix_serverr�open_unix_connectionr=r
r9r>rrr�test_open_unix_connectionEs

�z%StreamTests.test_open_unix_connectionc	s�g�|j��fdd��z*|�t��|j�|�\}}W5QRXW5t�d�X|�d�|��}|j�|�}|�	|�
d��|��|��g�dS)Ncs
��|�Srrr r"rrr$Nr%zCStreamTests._basetest_open_connection_no_loop_ssl.<locals>.<lambda>r&r()
r
r)rrr*r+r,r-r0r1r2rr/r3rr"r�%_basetest_open_connection_no_loop_sslLs
z1StreamTests._basetest_open_connection_no_loop_sslNz
No ssl modulec	Cs@tjdd��*}tj|jt��|jd��}|�|�W5QRXdS)NT�Zuse_ssl)�sslr
)rr;rr<r=�dummy_ssl_contextr
rFr>rrr� test_open_connection_no_loop_ssl\s�z,StreamTests.test_open_connection_no_loop_sslc	Cs@tjdd��*}tj|jt��d|jd�}|�|�W5QRXdS)NTrG�)rHZserver_hostnamer
)rrCrrDr=rIr
rFr>rrr�%test_open_unix_connection_no_loop_sslfs�z1StreamTests.test_open_unix_connection_no_loop_sslc	s�g�|j��fdd��|�t��|j�|�\}}W5QRX|j�t��|��}|�	t��|j�|�W5QRX|�
�t�|j�|�
�g�dS)Ncs
��|�Srrr r"rrr$tr%z=StreamTests._basetest_open_connection_error.<locals>.<lambda>)r
r)r*r+r,Z	_protocolZconnection_lost�ZeroDivisionErrorr0�assertRaisesrrrr/)rr4r5r6r7rr"r�_basetest_open_connection_errorrsz+StreamTests._basetest_open_connection_errorc	Cs6t���$}tj|jd|ji�}|�|�W5QRXdSr:)rr;rr<r=r
rOr>rrr�test_open_connection_errors


�z&StreamTests.test_open_connection_errorc	Cs4t���"}tj|j|jd�}|�|�W5QRXdSrA)rrCrrDr=r
rOr>rrr�test_open_unix_connection_error�s

�z+StreamTests.test_open_unix_connection_errorcCs*tj|jd�}|�d�|�d|j�dS�NrBr%)rrr
�	feed_datar/�_buffer�rrrrr�test_feed_empty_data�s
z StreamTests.test_feed_empty_datacCs.tj|jd�}|�|j�|�|j|j�dSrA)rrr
rS�DATAr/rTrUrrr�test_feed_nonempty_data�sz#StreamTests.test_feed_nonempty_datacCsLtj|jd�}|�|j�|j�|�d��}|�d|�|�|j|j�dS)NrBrr%)	rrr
rSrWr,r0r/rT�rrr8rrr�test_read_zero�s
zStreamTests.test_read_zerocsftj�jd���j���d��}��fdd�}�j�|��j�|�}���j|���d�j	�dS)NrB�cs���j�dSr�rSrWrrUrr�cb�sz!StreamTests.test_read.<locals>.cbr%)
rrr
�create_taskr0�	call_soonr,r/rWrT�r�	read_taskr]r8rrUr�	test_read�szStreamTests.test_readcCsRtj|jd�}|�d�|�d�|j�|�d��}|�d|�|�d|j�dS)NrBsline1sline2��rrr
rSr,r0r/rTrYrrr�test_read_line_breaks�s

z!StreamTests.test_read_line_breakscsbtj|jd��|j���d��}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)NrBics���dSr)�feed_eofr�rrrr]�sz%StreamTests.test_read_eof.<locals>.cbr%�	rrr
r^r0r_r,r/rTr`rrgr�
test_read_eof�szStreamTests.test_read_eofcsbtj|jd��|j���d��}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)NrB���cs ��d���d����dS)Nschunk1
�chunk2�rSrfrrgrrr]�s

z+StreamTests.test_read_until_eof.<locals>.cbs
chunk1
chunk2r%rhr`rrgr�test_read_until_eof�szStreamTests.test_read_until_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dS�NrB�line
��li)
rrr
rSr,r0r/�
set_exception�
ValueErrorrNrYrrr�test_read_exception�s
�zStreamTests.test_read_exceptionc	CsT|�td��tjd|jd�W5QRX|�td��tjd|jd�W5QRXdS)NZimitr��limitr
rj)�assertRaisesRegexrsrrr
rrrr�test_invalid_limit�szStreamTests.test_invalid_limitcCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dS�N�ruschunkrcr%rdrYrrr�test_read_limit�s

zStreamTests.test_read_limitcsjtj|jd����d�|j�����}�fdd�}|j�|�|j�|�}|�d|�|�d�j	�dS)NrBschunk1 cs"��d���d���d�dS)Nschunk2 schunk3 s
 chunk4)rSrrgrrr]�s

z%StreamTests.test_readline.<locals>.cbschunk1 chunk2 chunk3 
s chunk4)
rrr
rSr^r.r_r,r/rT)rrar]�linerrgr�
test_readline�s
zStreamTests.test_readlinecCs�tjd|jd�}|�d�|�d�|�t|jj|���|�d|j	�tjd|jd�}|�d�|�d�|�d�|�t|jj|���|�d|j	�dS)Nrzrurqs
ne1
line2
sline2
sne1r%)
rrr
rSrNrsr,r.r/rTrUrrr�&test_readline_limit_with_existing_datas&

�


�z2StreamTests.test_readline_limit_with_existing_datacCs�tj|jd�}|�|���|�d�|�|���|j�|���|�|���|�d�|��|j�|���|�	|���dS)NrBs
some data
)
rrr
�assertFalse�at_eofrSr,r.rfr1rUrrr�test_at_eofs

zStreamTests.test_at_eofc	s\tjd|jd���fdd�}|j�|�|�t|jj����|�d�j	�tjd|jd���fdd�}|j�|�|�t|jj����|�d�j	�tjd|jd����
d�|j�����}|�d|�|�d�j	���
d	�|�t��}|j�����W5QRX|�d�j	���
d
�|�t��}|j�����W5QRX|�d�j	�dS)N�rucs*��d���d���d����dS)N�chunk1rk�chunk3
rlrrgrrr]/s


z+StreamTests.test_readline_limit.<locals>.cbr%cs*��d���d���d����dS)Nr�schunk2
r�rlrrgrrr]=s


r�s1234567
s	12345678
s12345678)rrr
r_rNrsr,r.r/rTrS)rr]r|�cmrrgr�test_readline_limit*s>��


zStreamTests.test_readline_limitcCsdtj|jd�}|�|jdd��|�|jdd��|j�|���}|�d|�|�d|j�dS)NrB�sline1
sline2
line3
)	rrr
rSrWr,r.r/rT�rrr|rrr�test_readline_nolimit_nowaitYsz(StreamTests.test_readline_nolimit_nowaitcCs@tj|jd�}|�d�|��|j�|���}|�d|�dS)NrBs	some data)rrr
rSrfr,r.r/r�rrr�test_readline_eofes

zStreamTests.test_readline_eofcCs6tj|jd�}|��|j�|���}|�d|�dSrR)rrr
rfr,r.r/r�rrr�test_readline_empty_eofmsz#StreamTests.test_readline_empty_eofcCsZtj|jd�}|�|j�|j�|���|j�|�d��}|�d|�|�d|j	�dS)NrBr�sline2
lsine3
)
rrr
rSrWr,r.r0r/rTrYrrr�test_readline_read_byte_counttsz)StreamTests.test_readline_read_byte_countcCshtj|jd�}|�d�|j�|���}|�d|�|�t��|�	t|jj|���|�d|j
�dS)NrBror%)rrr
rSr,r.r/rrrsrNrTrYrrr�test_readline_exceptions
�z#StreamTests.test_readline_exceptionc	Cs>tj|jd�}|�td��|j�|jdd��W5QRXdS)NrBzSeparator should ber%�Z	separator)rrr
rwrsr,�	readuntilrUrrr�test_readuntil_separator�sz$StreamTests.test_readuntil_separatorcCs�tj|jd�}|�d�|j�|jdd��}|�d|�|�d|j�|�d�|j�|�d��}|�d|�|�d|j�|�d�|j�|�d��}|�d|�|�d|j�dS)NrBslineAAA�AAAr�r%s
lineAAAxxxsxxx�rrr
rSr,r�r/rTrYrrr�test_readuntil_multi_chunks�s


z'StreamTests.test_readuntil_multi_chunkscCsftj|jd�}|�d�|�d�|�d�|j�|�d��}|�d|�|�d|j�|�d�|�d�|�d	�|j�|�d��}|�d|�|�d|j�|�d�|j�|�d��}|�d|�|�d|j�|�d
�|j�|�d��}|�d
|�|�d|j�|�d�|�d�|�d�|�d�|j�|�d��}|�d|�|�d|j�dS)
NrBsQWEaasXYaa�asaaas
QWEaaXYaaar%sXYasaasXaaasXXXsXXXaaar�rYrrr�test_readuntil_multi_chunks_1�s8











z)StreamTests.test_readuntil_multi_chunks_1c	Cs�tj|jd�}d}|�|�|��|�tjd��}|j�|�d��W5QRX|�	|j
j|�|�|j
j
�|�	d|j�dS)NrB�some dataAAzundefined expected bytesr�r%)rrr
rSrfrw�IncompleteReadErrorr,r�r/�	exception�partial�assertIsNone�expectedrT)rrr8r�rrr�test_readuntil_eof�s
�zStreamTests.test_readuntil_eofc	Cs�tj|jdd�}|�d�|�tjd��}|j�|�d��W5QRX|�d|j	�|�d�|�tjd��}|j�|�d��W5QRX|�d|j	�dS)	Nrz�r
rvr�z	not foundr��Azis foundssome dataAAA)
rrr
rSrw�LimitOverrunErrorr,r�r/rT)rrr�rrr�test_readuntil_limit_found_sep�s
�
�z*StreamTests.test_readuntil_limit_found_sepc	Cs�tj|jd�}|�|j�|j�|�d��}|�d|�|�|j|j�|�	t
d��|j�|�d��W5QRX|�|j|j�dS)NrBrr%zless than zerorj)rrr
rSrWr,�readexactlyr/rTrwrsrYrrr�test_readexactly_zero_or_less�sz)StreamTests.test_readexactly_zero_or_lesscs|tj�jd��dt�j�}�j���|��}��fdd�}�j�|��j�|�}��	�j�j|���	�j�j
�dS)NrBrpcs(���j����j����j�dSrr\rrUrrr]�sz(StreamTests.test_readexactly.<locals>.cb)rrr
�lenrWr^r�r_r,r/rT)r�nrar]r8rrUr�test_readexactly�szStreamTests.test_readexactlycCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dSry)rrr
rSr,r�r/rTrYrrr�test_readexactly_limits

z"StreamTests.test_readexactly_limitc	s�tj�jd��dt�j�}�j���|��}��fdd�}�j�|���tj	��}�j�
|�W5QRX��|jj
�j���|jj|���t|j�d���d�j�dS)NrBrpcs���j����dSr)rSrWrfrrUrrr]
sz,StreamTests.test_readexactly_eof.<locals>.cbz-18 bytes read on a total of 36 expected bytesr%)rrr
r�rWr^r�r_rNr�r,r/r�r�r��strrT)rr�rar]r�rrUr�test_readexactly_eofs�z StreamTests.test_readexactly_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dSrn)
rrr
rSr,r�r/rrrsrNrYrrr�test_readexactly_exceptions
�z&StreamTests.test_readexactly_exceptioncCs@tj|jd�}|�|���t�}|�|�|�|��|�dSrA)rrr
r�r�rsrrr�rr�excrrr�test_exception%s

zStreamTests.test_exceptioncs`tj|jd���fdd�}|j�����}|j�|��}|j�t�||g��|�t|j	�dS)NrBc�s��t��dSr)rrrsrrgrr�set_err0sz2StreamTests.test_exception_waiter.<locals>.set_err)
rrr
r^r.r,�waitrNrs�result)rr��t1�t2rrgr�test_exception_waiter-sz!StreamTests.test_exception_waitercCsjtj|jd�}|j�|���}t�|j�|��t�|j�|�t	d��t�|j�|�
|jd�dS)NrB�message)rrr
r^r.rr�cancelrr�RuntimeErrorr�_waiter)rr�trrr�test_exception_cancel:sz!StreamTests.test_exception_cancelc	s�Gdd�d�}�fdd�}g��j��fdd��|�j�}��t��|��}W5QRX�j��j�||���}|����|d�|�j�}��t��|�	�}W5QRX�j��j�||���}|����|d����g�dS)Nc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)z/StreamTests.test_start_server.<locals>.MyServercSsd|_||_dSr)�serverr
)rr
rrr�__init__Jsz8StreamTests.test_start_server.<locals>.MyServer.__init__c�s@|��IdH}|�|�|��IdH|��|��IdHdSr�r.r-�drainr�wait_closed�r�
client_reader�
client_writerr8rrr�
handle_clientNs

z=StreamTests.test_start_server.<locals>.MyServer.handle_clientcSs0t�d�}|j�tj|j||jd��|_|��S)N�z	127.0.0.1r)�sockr
)	�socket�
create_serverr
r,r�start_serverr�r��getsockname)rr�rrr�startUs
��z5StreamTests.test_start_server.<locals>.MyServer.startcSs|j�|�||��dSr�r
r^r��rr�r�rrr�handle_client_callback]s�zFStreamTests.test_start_server.<locals>.MyServer.handle_client_callbackcSsFt�d�}|��}|��|j�tj|j|d|d|jd��|_	|S)Nr�r�)�host�portr
)
r�r�r�rr
r,rr�r�r�)rr��addrrrr�start_callbackas
��z>StreamTests.test_start_server.<locals>.MyServer.start_callbackcSs0|jdk	r,|j��|j�|j���d|_dSr�r�rr
r,r�rrrr�stopks

z4StreamTests.test_start_server.<locals>.MyServer.stopN�	�__name__�
__module__�__qualname__r�r�r�r�r�r�rrrr�MyServerHs
r�c	�sd��t��"tj|d�ji�IdH\}}W5QRX|�d�|��IdH}|��|��IdH|S)Nr
�
hello world!
)	r*r+rr<r
r-r.rr�)r�r5r6�msgbackrrr�clientqs��
z-StreamTests.test_start_server.<locals>.clientcs
��|�Srrr r"rrr$~r%z/StreamTests.test_start_server.<locals>.<lambda>r�)
r
r)r*r+r�r,r^r�r/r�)rr�r�r�r��msgr�r#rr�test_start_serverFs")

zStreamTests.test_start_serverc
sGdd�d�}�fdd�}g��j��fdd��t���\}|�j|�}��t��|��W5QRX�j��j�||���}|�	���
|d�W5QRXt���\}|�j|�}��t��|��W5QRX�j��j�||���}|�	���
|d�W5QRX��
�g�dS)Nc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)z4StreamTests.test_start_unix_server.<locals>.MyServercSsd|_||_||_dSr)r�r
�path)rr
r�rrrr��sz=StreamTests.test_start_unix_server.<locals>.MyServer.__init__c�s@|��IdH}|�|�|��IdH|��|��IdHdSrr�r�rrrr��s

zBStreamTests.test_start_unix_server.<locals>.MyServer.handle_clientcSs$|j�tj|j|j|jd��|_dS�N)r�r
)r
r,r�start_unix_serverr�r�r�rrrrr��s��z:StreamTests.test_start_unix_server.<locals>.MyServer.startcSs|j�|�||��dSrr�r�rrrr��s�zKStreamTests.test_start_unix_server.<locals>.MyServer.handle_client_callbackcSs(tj|j|j|jd�}|j�|�|_dSr�)rr�r�r�r
r,r�)rr�rrrr��s
�zCStreamTests.test_start_unix_server.<locals>.MyServer.start_callbackcSs0|jdk	r,|j��|j�|j���d|_dSrr�rrrrr��s

z9StreamTests.test_start_unix_server.<locals>.MyServer.stopNr�rrrrr��sr�c	�sb��t�� tj|�jd�IdH\}}W5QRX|�d�|��IdH}|��|��IdH|S)NrBr�)	r*r+rrDr
r-r.rr�)r�r5r6r�rrrr��s�
z2StreamTests.test_start_unix_server.<locals>.clientcs
��|�Srrr r"rrr$�r%z4StreamTests.test_start_unix_server.<locals>.<lambda>r�)r
r)rZunix_socket_pathr*r+r�r,r^r�r/r�)rr�r�r�r�r�rr�r�test_start_unix_server�s.$
�
�z"StreamTests.test_start_unix_server�win32zDon't have pipesc
	s�d}t��\}}tjd|t|�g}t|dd�}tj|jdd�}tj	||jd��|j�
|j��fdd	�|��\}}t��}	|	�
|j�z<t�|	�tj|d
|hi�}
|j�
|
�}|j�
|���W5t�d�Xt�|�|j�
|�d��}|�|d�dS)
NzHimport os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
z-c�rbrr�r�rBcs�Srrr��protocolrrr$�r%z<StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>�pass_fdsrj�data)�os�pipe�sys�
executabler��openrrr
�StreamReaderProtocolr,Zconnect_read_pipeZSafeChildWatcherZattach_loopZset_child_watcherZcreate_subprocess_execr�rr0r/)
r�codeZrfdZwfd�argsr�r5Z	transport�_ZwatcherZcreate�procr8rr�r�test_read_all_from_pipe_reader�s0�
��
z*StreamTests.test_read_all_from_pipe_readercCs6|�tjd�t�|j�t��}|�|j|j�dSr)�
addCleanuprrr
rrr)rr5rrr�test_streamreader_constructorsz)StreamTests.test_streamreader_constructorcCs@|�tjd�t�|j�t��}t�|�}|�|j|j�dSr)	r�rrr
r�Mockr�rr)rr5r�rrr�%test_streamreaderprotocol_constructors

z1StreamTests.test_streamreaderprotocol_constructorc	s�g��j��fdd��t����fdd�}�fdd�}tj|d�}|�d�|�����}��	t
ttf���j�
||��W5QRX|����g��dS)	Ncs
��|�Srrr r"rrr$"r%z/StreamTests.test_drain_raises.<locals>.<lambda>c	s@t�d��,}|��}��|�|��\}}|��W5QRXdS)N)�	localhostr)r�r�r��put�acceptr)r�r�Zcltr�)�qrrr�%s

z-StreamTests.test_drain_raises.<locals>.serverc	�sP��t��"tj||�jd�IdH\}}W5QRX|�d�|��IdHq2dS)NrBsfoo
)r*r+rr<r
r-r�)r�r�r5r6rrrr�-s�
z-StreamTests.test_drain_raises.<locals>.client)�targetT)r
r)�queue�Queue�	threading�Thread�	setDaemonr��getrN�ConnectionResetError�ConnectionAbortedError�BrokenPipeErrorr,�joinr/)rr�r��threadr�r)r#r�rr�test_drain_raisess

�zStreamTests.test_drain_raisescCs"tj|jd�}|�dt|��dS)NrB�<StreamReader>�rrr
r/�reprrUrrr�
test___repr__FszStreamTests.test___repr__cCs$tj|jdd�}|�dt|��dS)N�{r�z<StreamReader limit=123>r	rUrrr�test___repr__nondefault_limitJsz)StreamTests.test___repr__nondefault_limitcCs*tj|jd�}|��|�dt|��dS)NrBz<StreamReader eof>)rrr
rfr/r
rUrrr�test___repr__eofNszStreamTests.test___repr__eofcCs,tj|jd�}|�d�|�dt|��dS)NrBr�z<StreamReader 4 bytes>)rrr
rSr/r
rUrrr�test___repr__dataSs
zStreamTests.test___repr__datacCs2tj|jd�}t�}|�|�|�dt|��dS)NrBz'<StreamReader exception=RuntimeError()>)rrr
r�rrr/r
r�rrr�test___repr__exceptionXs
�z"StreamTests.test___repr__exceptioncCsbtj|jd�}tj|jd�|_|�t|�d�|j�d�|j�|j�d|_|�	dt|��dS)NrBz,<StreamReader waiter=<Future pending[\S ]*>>r)
rrr
�Futurer�ZassertRegexr
�
set_resultr,r/rUrrr�test___repr__waiter_s�zStreamTests.test___repr__waitercCsBtj|jd�}t��|_t��|j_d|jj_|�dt	|��dS)NrBz<Transport>z$<StreamReader transport=<Transport>>)
rrr
rr�Z
_transport�__repr__rr/r
rUrrr�test___repr__transportjs


z"StreamTests.test___repr__transportc
Cs�t�dd�}ttjd�D]d}|j|d��Nt�tj||d��}|�t	|�t	|��|�|j
|j
�|�|j|j�W5QRXqdS)Nsabc�
r��Zpickle_protocolr�)rr��range�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr/r�r�r��r�e�protoZe2rrr�#test_IncompleteReadError_pickleableqsz/StreamTests.test_IncompleteReadError_pickleablec
Cstt�dd�}ttjd�D]T}|j|d��>t�tj||d��}|�t	|�t	|��|�|j
|j
�W5QRXqdS)Nr�rr�rr�)rr�rrrrrrr/r��consumedrrrr�!test_LimitOverrunError_pickleablezsz-StreamTests.test_LimitOverrunError_pickleablec
Cs�t����}|�t��&|j�tj|jd|ji��\}}W5QRX|�	d�|�
�}|j�|�}|�|d�|��}|j�|�}|�
|�d��|�|���|��|�
|���|j�|���W5QRXdS)Nr
r&r'r()rr;r*r+r
r,rr<r=r-r.r/r0r1r2rZ
is_closingrr��rr?�rd�wrr7r8rrr�test_wait_closed_on_close�s 
�
z%StreamTests.test_wait_closed_on_closec
Cs�t���~}|�t��&|j�tj|jd|ji��\}}W5QRX|�	d�|�
�}|j�|�}|�|d�|��|j�|�
��W5QRXdS)Nr
r&r')rr;r*r+r
r,rr<r=r-r.r/rr�r$rrr�*test_wait_closed_on_close_with_unread_data�s
�
z6StreamTests.test_wait_closed_on_close_with_unread_datac	sX�fdd�}g��j��fdd��t���}�j�||��W5QRX���g�dS)Nc�srtj|j�IdH\}}|�d�|��IdH}��|d�|��IdH}��|�d��|�	�|�
�IdHdS)Nr&r'r()rr<r=r-r.r/r0r1r2rr��r?r%r&r8rrr�inner�s
z0StreamTests.test_async_writer_api.<locals>.innercs
��|�Srrr r"rrr$�r%z3StreamTests.test_async_writer_api.<locals>.<lambda>�r
r)rr;r,r/�rr*r?rr�r�test_async_writer_api�s
z!StreamTests.test_async_writer_apic	sX�fdd�}g��j��fdd��t���}�j�||��W5QRX���g�dS)Nc	�s�tj|j�IdH\}}|�d�|��IdH}��|d�|��IdH}��|�d��|�	���
t��|�d�|��IdHW5QRXdS)Nr&r'r(r�)
rr<r=r-r.r/r0r1r2rrNrr�r)rrrr*�s

zFStreamTests.test_async_writer_api_exception_after_close.<locals>.innercs
��|�Srrr r"rrr$�r%zIStreamTests.test_async_writer_api_exception_after_close.<locals>.<lambda>r+r,rr�r�+test_async_writer_api_exception_after_close�s

z7StreamTests.test_async_writer_api_exception_after_closec
s�g�|j��fdd��t����}|�t��&|j�tj|j	d|ji��\}}W5QRX|�
�|��}|j�|�|��s�t
�|��}|j�|�}|dks�t
�W5QRX|��g�dS)Ncs
��|�Srrr r"rrr$�r%z?StreamTests.test_eof_feed_when_closing_writer.<locals>.<lambda>r
r%)r
r)rr;r*r+r,rr<r=rr�r��AssertionErrorr0r/r$rr"r�!test_eof_feed_when_closing_writer�s"

��z-StreamTests.test_eof_feed_when_closing_writer)Nr�r�r�rWrrrZpatchrr9r@rZskip_unless_bind_unix_socketrErF�unittestZskipIfrHrJrLrOrPrQrVrXrZrbrerirmrtrxr{r}r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��platformr�r�r�rrr
rrrrrr!r#r'r(r-r.r0�
__classcell__rrrrr
s�


	


	

/#


L
K
'	
-	
r
�__main__)�__doc__rr�r�rr�r�r�r1r�testrrH�ImportErrorrZtest.test_asynciorrr	ZTestCaser
r��mainrrrr�<module>s6
N