Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/test_asyncio/__pycache__/test_streams.cpython-38.opt-1.pyc

U

i�fې�@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�C/opt/alt/python38/lib64/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
Zctx��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
r8�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
r8r=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,r/r0r1rr.r2rr!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
rEr=rrr� test_open_connection_no_loop_ssl\s�z,StreamTests.test_open_connection_no_loop_sslc	Cs@tjdd��*}tj|jt��d|jd�}|�|�W5QRXdS)NTrF�)rGZserver_hostnamer
)rrBrrCr<rHr
rEr=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�ZeroDivisionErrorr/�assertRaisesrrrr.)rr3r4r5r6rr!r�_basetest_open_connection_errorrsz+StreamTests._basetest_open_connection_errorc	Cs6t���$}tj|jd|ji�}|�|�W5QRXdSr9)rr:rr;r<r
rNr=rrr�test_open_connection_errors


�z&StreamTests.test_open_connection_errorc	Cs4t���"}tj|j|jd�}|�|�W5QRXdSr@)rrBrrCr<r
rNr=rrr�test_open_unix_connection_error�s

�z+StreamTests.test_open_unix_connection_errorcCs*tj|jd�}|�d�|�d|j�dS�NrAr$)rrr
�	feed_datar.�_buffer�rrrrr�test_feed_empty_data�s
z StreamTests.test_feed_empty_datacCs.tj|jd�}|�|j�|�|j|j�dSr@)rrr
rR�DATAr.rSrTrrr�test_feed_nonempty_data�sz#StreamTests.test_feed_nonempty_datacCsLtj|jd�}|�|j�|j�|�d��}|�d|�|�|j|j�dS)NrArr$)	rrr
rRrVr+r/r.rS�rrr7rrr�test_read_zero�s
zStreamTests.test_read_zerocsftj�jd���j���d��}��fdd�}�j�|��j�|�}���j|���d�j	�dS)NrA�cs���j�dSr�rRrVrrTrr�cb�sz!StreamTests.test_read.<locals>.cbr$)
rrr
�create_taskr/�	call_soonr+r.rVrS�r�	read_taskr\r7rrTr�	test_read�szStreamTests.test_readcCsRtj|jd�}|�d�|�d�|j�|�d��}|�d|�|�d|j�dS)NrAsline1sline2��rrr
rRr+r/r.rSrXrrr�test_read_line_breaks�s

z!StreamTests.test_read_line_breakscsbtj|jd��|j���d��}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)NrAics���dSr)�feed_eofr�rrrr\�sz%StreamTests.test_read_eof.<locals>.cbr$�	rrr
r]r/r^r+r.rSr_rrfr�
test_read_eof�szStreamTests.test_read_eofcsbtj|jd��|j���d��}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)NrA���cs ��d���d����dS)Nschunk1
�chunk2�rRrerrfrrr\�s

z+StreamTests.test_read_until_eof.<locals>.cbs
chunk1
chunk2r$rgr_rrfr�test_read_until_eof�szStreamTests.test_read_until_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dS�NrA�line
��li)
rrr
rRr+r/r.�
set_exception�
ValueErrorrMrXrrr�test_read_exception�s
�zStreamTests.test_read_exceptionc	CsT|�td��tjd|jd�W5QRX|�td��tjd|jd�W5QRXdS)NZimitr��limitr
ri)�assertRaisesRegexrrrrr
rrrr�test_invalid_limit�szStreamTests.test_invalid_limitcCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dS�N�rtschunkrbr$rcrXrrr�test_read_limit�s

zStreamTests.test_read_limitcsjtj|jd����d�|j�����}�fdd�}|j�|�|j�|�}|�d|�|�d�j	�dS)NrAschunk1 cs"��d���d���d�dS)Nschunk2 schunk3 s
 chunk4)rRrrfrrr\�s

z%StreamTests.test_readline.<locals>.cbschunk1 chunk2 chunk3 
s chunk4)
rrr
rRr]r-r^r+r.rS)rr`r\�linerrfr�
test_readline�s
zStreamTests.test_readlinecCs�tjd|jd�}|�d�|�d�|�t|jj|���|�d|j	�tjd|jd�}|�d�|�d�|�d�|�t|jj|���|�d|j	�dS)Nryrtrps
ne1
line2
sline2
sne1r$)
rrr
rRrMrrr+r-r.rSrTrrr�&test_readline_limit_with_existing_datas&

�


�z2StreamTests.test_readline_limit_with_existing_datacCs�tj|jd�}|�|���|�d�|�|���|j�|���|�|���|�d�|��|j�|���|�	|���dS)NrAs
some data
)
rrr
�assertFalseZat_eofrRr+r-rer0rTrrr�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�rtcs*��d���d���d����dS)N�chunk1rj�chunk3
rkrrfrrr\/s


z+StreamTests.test_readline_limit.<locals>.cbr$cs*��d���d���d����dS)Nr�schunk2
r�rkrrfrrr\=s


r�s1234567
s	12345678
s12345678)rrr
r^rMrrr+r-r.rSrR)rr\r{�cmrrfr�test_readline_limit*s>��


zStreamTests.test_readline_limitcCsdtj|jd�}|�|jdd��|�|jdd��|j�|���}|�d|�|�d|j�dS)NrA�sline1
sline2
line3
)	rrr
rRrVr+r-r.rS�rrr{rrr�test_readline_nolimit_nowaitYsz(StreamTests.test_readline_nolimit_nowaitcCs@tj|jd�}|�d�|��|j�|���}|�d|�dS)NrAs	some data)rrr
rRrer+r-r.r�rrr�test_readline_eofes

zStreamTests.test_readline_eofcCs6tj|jd�}|��|j�|���}|�d|�dSrQ)rrr
rer+r-r.r�rrr�test_readline_empty_eofmsz#StreamTests.test_readline_empty_eofcCsZtj|jd�}|�|j�|j�|���|j�|�d��}|�d|�|�d|j	�dS)NrAr�sline2
lsine3
)
rrr
rRrVr+r-r/r.rSrXrrr�test_readline_read_byte_counttsz)StreamTests.test_readline_read_byte_countcCshtj|jd�}|�d�|j�|���}|�d|�|�t��|�	t|jj|���|�d|j
�dS)NrArnr$)rrr
rRr+r-r.rqrrrMrSrXrrr�test_readline_exceptions
�z#StreamTests.test_readline_exceptionc	Cs>tj|jd�}|�td��|j�|jdd��W5QRXdS)NrAzSeparator should ber$�Z	separator)rrr
rvrrr+�	readuntilrTrrr�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)NrAslineAAA�AAAr�r$s
lineAAAxxxsxxx�rrr
rRr+r�r.rSrXrrr�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)
NrAsQWEaasXYaa�asaaas
QWEaaXYaaar$sXYasaasXaaasXXXsXXXaaar�rXrrr�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)NrA�some dataAAzundefined expected bytesr�r$)rrr
rRrerv�IncompleteReadErrorr+r�r.�	exception�partial�assertIsNone�expectedrS)rrr7r�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)	Nry�r
rur�z	not foundr��Azis foundssome dataAAA)
rrr
rRrv�LimitOverrunErrorr+r�r.rS)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)NrArr$zless than zerori)rrr
rRrVr+�readexactlyr.rSrvrrrXrrr�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)NrArocs(���j����j����j�dSrr[rrTrrr\�sz(StreamTests.test_readexactly.<locals>.cb)rrr
�lenrVr]r�r^r+r.rS)r�nr`r\r7rrTr�test_readexactly�szStreamTests.test_readexactlycCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dSrx)rrr
rRr+r�r.rSrXrrr�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)NrArocs���j����dSr)rRrVrerrTrrr\
sz,StreamTests.test_readexactly_eof.<locals>.cbz-18 bytes read on a total of 36 expected bytesr$)rrr
r�rVr]r�r^rMr�r+r.r�r�r��strrS)rr�r`r\r�rrTr�test_readexactly_eofs�z StreamTests.test_readexactly_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dSrm)
rrr
rRr+r�r.rqrrrMrXrrr�test_readexactly_exceptions
�z&StreamTests.test_readexactly_exceptioncCs@tj|jd�}|�|���t�}|�|�|�|��|�dSr@)rrr
r�r�rrrqr�rr�excrrr�test_exception%s

zStreamTests.test_exceptioncs`tj|jd���fdd�}|j�����}|j�|��}|j�t�||g��|�t|j	�dS)NrAc�s��t��dSr)rqrrrrfrr�set_err0sz2StreamTests.test_exception_waiter.<locals>.set_err)
rrr
r]r-r+�waitrMrr�result)rr��t1�t2rrfr�test_exception_waiter-sz!StreamTests.test_exception_waitercCsjtj|jd�}|j�|���}t�|j�|��t�|j�|�t	d��t�|j�|�
|jd�dS)NrA�message)rrr
r]r-rrZcancelrq�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_writerr7rrr�
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�r4r5�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)NrAr�)	r)r*rrCr
r,r-rr�)r�r4r5r�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
	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�rAcs�Srrr��protocolrrr#�r$z<StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>Zpass_fdsri�data)�os�pipe�sys�
executabler��openrrr
�StreamReaderProtocolr+Zconnect_read_pipeZSafeChildWatcherZattach_loopZset_child_watcherZcreate_subprocess_execr�rr/r.)
r�codeZrfdZwfd�argsr�r4Z	transport�_ZwatcherZcreate�procr7rr�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)rr4rrr�test_streamreader_constructorsz)StreamTests.test_streamreader_constructorcCs@|�tjd�t�|j�t��}t�|�}|�|j|j�dSr)	r�rrr
r�Mockr�rr)rr4r�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)Z	localhostr)r�r�r�ZputZacceptr)r�r�Zcltr�)�qrrr�%s

z-StreamTests.test_drain_raises.<locals>.serverc	�sP��t��"tj||�jd�IdH\}}W5QRX|�d�|��IdHq2dS)NrAsfoo
)r)r*rr;r
r,r�)r�r�r4r5rrrr�-s�
z-StreamTests.test_drain_raises.<locals>.client)�targetT)r
r(�queueZQueue�	threadingZThreadZ	setDaemonr��getrM�ConnectionResetError�ConnectionAbortedError�BrokenPipeErrorr+�joinr.)rr�r��threadr�r)r"r�rr�test_drain_raisess

�zStreamTests.test_drain_raisescCs"tj|jd�}|�dt|��dS)NrA�<StreamReader>�rrr
r.�reprrTrrr�
test___repr__FszStreamTests.test___repr__cCs$tj|jdd�}|�dt|��dS)N�{r�z<StreamReader limit=123>r�rTrrr�test___repr__nondefault_limitJsz)StreamTests.test___repr__nondefault_limitcCs*tj|jd�}|��|�dt|��dS)NrAz<StreamReader eof>)rrr
rer.r�rTrrr�test___repr__eofNszStreamTests.test___repr__eofcCs,tj|jd�}|�d�|�dt|��dS)NrAr�z<StreamReader 4 bytes>)rrr
rRr.r�rTrrr�test___repr__dataSs
zStreamTests.test___repr__datacCs2tj|jd�}t�}|�|�|�dt|��dS)NrAz'<StreamReader exception=RuntimeError()>)rrr
r�rqr.r�r�rrr�test___repr__exceptionXs
�z"StreamTests.test___repr__exceptioncCsbtj|jd�}tj|jd�|_|�t|�d�|j�d�|j�|j�d|_|�	dt|��dS)NrAz,<StreamReader waiter=<Future pending[\S ]*>>r�)
rrr
ZFuturer�ZassertRegexr�Z
set_resultr+r.rTrrr�test___repr__waiter_s�zStreamTests.test___repr__waitercCsBtj|jd�}t��|_t��|j_d|jj_|�dt	|��dS)NrAz<Transport>z$<StreamReader transport=<Transport>>)
rrr
rr�Z
_transport�__repr__rr.r�rTrrr�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�r	r�r
r�)rr�rrr
rrrr.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.r/r0r1r~Z
is_closingrr��rr>�rd�wrr6r7rrr�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�rrrr�*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.r/r0r1rr��r>rrr7rrr�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_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.r/r0r1rrMr�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>rrrr�r�+test_async_writer_api_exception_after_close�s

z7StreamTests.test_async_writer_api_exception_after_closec
s�g�|j��fdd��t���l}|�t��&|j�tj|j	d|ji��\}}W5QRX|�
�|��}|j�|�|��}|j�|�}W5QRX|�
�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�r/r.rrr!r�!test_eof_feed_when_closing_writer�s 

��
z-StreamTests.test_eof_feed_when_closing_writer)Nr�r�r�rVrrrZpatchrr8r?rZskip_unless_bind_unix_socketrDrE�unittestZskipIfrGrIrKrNrOrPrUrWrYrardrhrlrsrwrzr|r}rr�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�rrrrrrrrrrrr r!r"�
__classcell__rrrrr
s�


	


	

/#


L
K
'	
-	
r
�__main__)�__doc__rr�r�rr�r�r�r#rZtestrrG�ImportErrorrZtest.test_asynciorrr	ZTestCaser
r��mainrrrr�<module>s6
N