Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/test_asyncio/__pycache__/test_streams.cpython-39.opt-1.pyc

a

XC?h��@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZzddlZWne
y~dZYn0ddlZddlmZdd�ZGdd	�d	ej�Zed
kr�e��dS)zTests for streams.py.�N)�mock)�
socket_helper)�utilscCst�d�dS�N)�asyncioZset_event_loop_policy�rr�C/opt/alt/python39/lib64/python3.9/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�edud�dd��Zeje�edud�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_loopcs�g�|j��fdd��|�t�� |j�|�\}}Wd�n1sH0Y|�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_connectioncCsJt���.}tj|jd|ji�}|�|�Wd�n1s<0YdS�Nr
)r�run_test_serverr�open_connection�addressr
r9�r�httpdZconn_futrrr�test_open_connection?s


�z StreamTests.test_open_connectioncCsHt���,}tj|j|jd�}|�|�Wd�n1s:0YdS�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��zH|�t�� |j�|�\}}Wd�n1sJ0YWt�d�nt�d�0|�d�|��}|j�|�}|�	|�
d��|��|��g�dS)Ncs
��|�Srrr r"rrr$Nr%zCStreamTests._basetest_open_connection_no_loop_ssl.<locals>.<lambda>r&r()
r
r)r*r+r,rrr-r0r1r2rr/r3rr"r�%_basetest_open_connection_no_loop_sslLs0
z1StreamTests._basetest_open_connection_no_loop_sslNz
No ssl modulecCsTtjdd��4}tj|jt��|jd��}|�|�Wd�n1sF0YdS)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_sslcCsTtjdd��4}tj|jt��d|jd�}|�|�Wd�n1sF0YdS)NTrG�)rHZserver_hostnamer
)rrCrrDr=rIr
rFr>rrr�%test_open_unix_connection_no_loop_sslfs�z1StreamTests.test_open_unix_connection_no_loop_sslcs�g�|j��fdd��|�t�� |j�|�\}}Wd�n1sH0Y|j�t��|��}|�	t��|j�|�Wd�n1s�0Y|�
�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_errorcCsJt���.}tj|jd|ji�}|�|�Wd�n1s<0YdSr:)rr;rr<r=r
rOr>rrr�test_open_connection_errors


�z&StreamTests.test_open_connection_errorcCsHt���,}tj|j|jd�}|�|�Wd�n1s:0YdSrA)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_exceptioncCs||�td�� tjd|jd�Wd�n1s20Y|�td�� tjd|jd�Wd�n1sn0YdS)NZimitr��limitr
rj)�assertRaisesRegexrsrrr
rrrr�test_invalid_limit�s.zStreamTests.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
�assertFalseZat_eofrSr,r.rfr1rUrrr�test_at_eofs

zStreamTests.test_at_eofcs�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�����Wd�n1�s0Y|�d�j	���
d
�|�t�� }|j�����Wd�n1�sl0Y|�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*s6��

0
0zStreamTests.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_exceptioncCsRtj|jd�}|�td��$|j�|jdd��Wd�n1sD0YdS)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_1cCs�tj|jd�}d}|�|�|��|�tjd��"}|j�|�d��Wd�n1sZ0Y|�	|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
�0zStreamTests.test_readuntil_eofcCs�tj|jdd�}|�d�|�tjd��"}|j�|�d��Wd�n1sP0Y|�d|j	�|�d�|�tjd��"}|j�|�d��Wd�n1s�0Y|�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
�0
�0z*StreamTests.test_readuntil_limit_found_sepcCs�tj|jd�}|�|j�|j�|�d��}|�d|�|�|j|j�|�	t
d��"|j�|�d��Wd�n1s|0Y|�|j|j�dS)NrBrr%zless than zerorj)rrr
rSrWr,�readexactlyr/rTrwrsrYrrr�test_readexactly_zero_or_less�s0z)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_limitcs�tj�jd��dt�j�}�j���|��}��fdd�}�j�|���tj	��}�j�
|�Wd�n1sv0Y��|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.rrZcancelrr�RuntimeErrorr�_waiter)rr�trrr�test_exception_cancel:sz!StreamTests.test_exception_cancelcsGdd�d�}�fdd�}g��j��fdd��|�j�}��t��|��}Wd�n1sd0Y�j��j�||���}|����|d�|�j�}��t��|�	�}Wd�n1s�0Y�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|jdur,|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�sx��t��,tj|d�ji�IdH\}}Wd�n1s<0Y|�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	sjGdd�d�}�fdd�}g��j��fdd��t���z}|�j|�}��t��|��Wd�n1sp0Y�j��j�||���}|�	���
|d�Wd�n1s�0Yt���|}|�j|�}��t��|��Wd�n1�s0Y�j��j�||���}|�	���
|d�Wd�n1�sP0Y��
�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|jdur,|j��|j�|j���d|_dSrr�rrrrr��s

z9StreamTests.test_start_unix_server.<locals>.MyServer.stopNr�rrrrr��sr�c�sv��t��*tj|�jd�IdH\}}Wd�n1s:0Y|�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_serverZwin32zDon't have pipesc
	sd}t��\}}tjd|t|�g}t|dd�}tj|jdd�}tj	||jd��|j�
|j��fdd	�|��\}}t��}	|	�
|j�zFt�|	�tj|d
|hi�}
|j�
|
�}|j�
|���Wt�d�nt�d�0t�|�|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>Zpass_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_constructorcs�g��j��fdd��t����fdd�}�fdd�}tj|d�}|�d�|�����}��	t
ttf�� �j�
||��Wd�n1s�0Y|����g��dS)	Ncs
��|�Srrr r"rrr$"r%z/StreamTests.test_drain_raises.<locals>.<lambda>csTt�d��6}|��}��|�|��\}}|��Wd�n1sF0YdS)N)Z	localhostr)r�r�r�ZputZacceptr)r�r�Zcltr�)�qrrr�%s

z-StreamTests.test_drain_raises.<locals>.serverc�sd��t��,tj||�jd�IdH\}}Wd�n1s<0Y|�d�|��IdHqFdS)NrBsfoo
)r*r+rr<r
r-r�)r�r�r5r6rrrr�-s�.
z-StreamTests.test_drain_raises.<locals>.client)�targetT)r
r)�queueZQueue�	threadingZThreadZ	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/rrUrrr�test___repr__eofNszStreamTests.test___repr__eofcCs,tj|jd�}|�d�|�dt|��dS)NrBr�z<StreamReader 4 bytes>)rrr
rSr/rrUrrr�test___repr__dataSs
zStreamTests.test___repr__datacCs2tj|jd�}t�}|�|�|�dt|��dS)NrBz'<StreamReader exception=RuntimeError()>)rrr
r�rrr/rr�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
ZFuturer�ZassertRegexrZ
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/rrUrrr�test___repr__transportjs


z"StreamTests.test___repr__transportc	Cs�t�dd�}ttjd�D]x}|j|d��Xt�tj||d��}|�t	|�t	|��|�|j
|j
�|�|j|j�Wd�q1s�0YqdS)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	Cs�t�dd�}ttjd�D]h}|j|d��Ht�tj||d��}|�t	|�t	|��|�|j
|j
�Wd�q1sx0YqdS)Nr�r
r�rr�)rr�rr
rrrrr/r��consumedrrrr�!test_LimitOverrunError_pickleablezsz-StreamTests.test_LimitOverrunError_pickleablec	Cs�t����}|�t��0|j�tj|jd|ji��\}}Wd�n1sJ0Y|�	d�|�
�}|j�|�}|�|d�|��}|j�|�}|�
|�d��|�|���|��|�
|���|j�|���Wd�n1s�0YdS)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��0|j�tj|jd|ji��\}}Wd�n1sJ0Y|�	d�|�
�}|j�|�}|�|d�|��|j�|�
��Wd�n1s�0YdS)Nr
r&r')rr;r*r+r
r,rr<r=r-r.r/rr�rrrr�*test_wait_closed_on_close_with_unread_data�s
�&
z6StreamTests.test_wait_closed_on_close_with_unread_datacsl�fdd�}g��j��fdd��t��� }�j�||��Wd�n1sR0Y���g�dS)Nc�srtj|j�IdH\}}|�d�|��IdH}��|d�|��IdH}��|�d��|�	�|�
�IdHdS)Nr&r'r()rr<r=r-r.r/r0r1r2rr��r?rrr8rrr�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/�rrr?rr�r�test_async_writer_api�s
.z!StreamTests.test_async_writer_apicsl�fdd�}g��j��fdd��t��� }�j�||��Wd�n1sR0Y���g�dS)Nc�s�tj|j�IdH\}}|�d�|��IdH}��|d�|��IdH}��|�d��|�	���
t��(|�d�|��IdHWd�n1s�0YdS)Nr&r'r(r�)
rr<r=r-r.r/r0r1r2rrNr�r�rrrrr�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>rr rr�r�+test_async_writer_api_exception_after_close�s

.z7StreamTests.test_async_writer_api_exception_after_closec	s�g�|j��fdd��t����}|�t��0|j�tj|j	d|ji��\}}Wd�n1sb0Y|�
�|��}|j�|�|��}|j�|�}Wd�n1s�0Y|�
�g�dS)Ncs
��|�Srrr r"rrr$�r%z?StreamTests.test_eof_feed_when_closing_writer.<locals>.<lambda>r
)r
r)rr;r*r+r,rr<r=rr�r0r/rrr"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�r�rrrrrrr	rrrrr!r"r#�
__classcell__rrrrr
s�


	


	

/#


L
K
'	
-	
r
�__main__)�__doc__rr�r�r
r�r�r�r$rZtest.supportrrH�ImportErrorrZtest.test_asynciorrr	ZTestCaser
r��mainrrrr�<module>s6
N