HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/test_asyncio/__pycache__/test_streams.cpython-37.pyc
B

��gj��@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZyddlZWne
k
r�dZYnXddlZddlmZGdd�dej�Zedkr�e��dS)	zTests for streams.py.�N)�mock)�support)�utilscsXeZdZdZ�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��ZI�ZJS)��StreamTestssline1
line2
line3
cs$t���t��|_|�|j�dS)N)�super�setUp�asyncioZnew_event_loop�loop�set_event_loop)�self)�	__class__��:/usr/local/lib/python3.7/test/test_asyncio/test_streams.pyrs

zStreamTests.setUpcs,t�|j�|j��t��t���dS)N)�
test_utils�run_brieflyr	�close�gcZcollectr�tearDown)r)rr
rrs
zStreamTests.tearDownzasyncio.streams.eventscCst��}|�|j|jj�dS)N)r�StreamReader�assertIs�_loopZget_event_loop�return_value)rZm_events�streamr
r
r�test_ctor_global_loop'sz!StreamTests.test_ctor_global_loopcCsj|j�|�\}}|�d�|��}|j�|�}|�|d�|��}|j�|�}|�|�d��|��dS)NsGET / HTTP/1.0

sHTTP/1.0 200 OK
s

Test message)	r	�run_until_complete�write�readline�assertEqual�read�
assertTrue�endswithr)r�open_connection_fut�reader�writer�f�datar
r
r�_basetest_open_connection,s
z%StreamTests._basetest_open_connectionc	Cs6t���$}tj|jd|ji�}|�|�WdQRXdS)Nr	)r�run_test_serverr�open_connection�addressr	r&)r�httpd�conn_futr
r
r�test_open_connection7s


z StreamTests.test_open_connectionc	Cs4t���"}tj|j|jd�}|�|�WdQRXdS)N)r	)r�run_test_unix_serverr�open_unix_connectionr)r	r&)rr*r+r
r
r�test_open_unix_connection=s

z%StreamTests.test_open_unix_connectionc	Cs\z|j�|�\}}Wdt�d�X|�d�|��}|j�|�}|�|�d��|��dS)NsGET / HTTP/1.0

s

Test message)	r	rrr
rrrr r)rr!r"r#r$r%r
r
r�%_basetest_open_connection_no_loop_sslDs
z1StreamTests._basetest_open_connection_no_loop_sslNz
No ssl modulec	Cs@tjdd��*}tj|jt��|jd��}|�|�WdQRXdS)NT)�use_ssl)�sslr	)rr'rr(r)�dummy_ssl_contextr	r0)rr*r+r
r
r� test_open_connection_no_loop_sslPsz,StreamTests.test_open_connection_no_loop_sslc	Cs@tjdd��*}tj|jt��d|jd�}|�|�WdQRXdS)NT)r1�)r2Zserver_hostnamer	)rr-rr.r)r3r	r0)rr*r+r
r
r�%test_open_unix_connection_no_loop_sslZs
z1StreamTests.test_open_unix_connection_no_loop_sslc	Cs`|j�|�\}}|j�t��|��}|�t��|j�|�WdQRX|��t�	|j�dS)N)
r	rZ	_protocolZconnection_lost�ZeroDivisionErrorr�assertRaisesrrr)rr!r"r#r$r
r
r�_basetest_open_connection_errorfsz+StreamTests._basetest_open_connection_errorc	Cs6t���$}tj|jd|ji�}|�|�WdQRXdS)Nr	)rr'rr(r)r	r9)rr*r+r
r
r�test_open_connection_erroros


z&StreamTests.test_open_connection_errorc	Cs4t���"}tj|j|jd�}|�|�WdQRXdS)N)r	)rr-rr.r)r	r9)rr*r+r
r
r�test_open_unix_connection_errorus

z+StreamTests.test_open_unix_connection_errorcCs*tj|jd�}|�d�|�d|j�dS)N)r	�)rrr	�	feed_datar�_buffer)rrr
r
r�test_feed_empty_data|s
z StreamTests.test_feed_empty_datacCs.tj|jd�}|�|j�|�|j|j�dS)N)r	)rrr	r=�DATArr>)rrr
r
r�test_feed_nonempty_data�sz#StreamTests.test_feed_nonempty_datacCsLtj|jd�}|�|j�|j�|�d��}|�d|�|�|j|j�dS)N)r	rr<)	rrr	r=r@rrrr>)rrr%r
r
r�test_read_zero�s
zStreamTests.test_read_zerocsjtj�jd��tj��d��jd�}��fdd�}�j�|��j�|�}���j|���d�j	�dS)N)r	�cs���j�dS)N)r=r@r
)rrr
r�cb�sz!StreamTests.test_read.<locals>.cbr<)
rrr	�Taskr�	call_soonrrr@r>)r�	read_taskrDr%r
)rrr�	test_read�szStreamTests.test_readcCsRtj|jd�}|�d�|�d�|j�|�d��}|�d|�|�d|j�dS)N)r	sline1sline2�)rrr	r=rrrr>)rrr%r
r
r�test_read_line_breaks�s

z!StreamTests.test_read_line_breakscsftj|jd��tj��d�|jd�}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)N)r	ics���dS)N)�feed_eofr
)rr
rrD�sz%StreamTests.test_read_eof.<locals>.cbr<)	rrr	rErrFrrr>)rrGrDr%r
)rr�
test_read_eof�szStreamTests.test_read_eofcsftj|jd��tj��d�|jd�}�fdd�}|j�|�|j�|�}|�d|�|�d�j�dS)N)r	���cs ��d���d����dS)Nschunk1
schunk2)r=rKr
)rr
rrD�s

z+StreamTests.test_read_until_eof.<locals>.cbs
chunk1
chunk2r<)	rrr	rErrFrrr>)rrGrDr%r
)rr�test_read_until_eof�szStreamTests.test_read_until_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dS)N)r	sline
�sli)
rrr	r=rrr�
set_exception�
ValueErrorr8)rrr%r
r
r�test_read_exception�s
zStreamTests.test_read_exceptionc	CsT|�td��tjd|jd�WdQRX|�td��tjd|jd�WdQRXdS)NZimitr)�limitr	rM)�assertRaisesRegexrQrrr	)rr
r
r�test_invalid_limit�szStreamTests.test_invalid_limitcCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dS)N�)rSr	schunkrIr<)rrr	r=rrrr>)rrr%r
r
r�test_read_limit�s

zStreamTests.test_read_limitcsntj|jd����d�tj���|jd�}�fdd�}|j�|�|j�|�}|�d|�|�d�j	�dS)N)r	schunk1 cs"��d���d���d�dS)Nschunk2 schunk3 s
 chunk4)r=r
)rr
rrD�s

z%StreamTests.test_readline.<locals>.cbschunk1 chunk2 chunk3 
s chunk4)
rrr	r=rErrFrrr>)rrGrD�liner
)rr�
test_readline�s
zStreamTests.test_readlinecCs�tjd|jd�}|�d�|�d�|�t|jj|���|�d|j	�tjd|jd�}|�d�|�d�|�d�|�t|jj|���|�d|j	�dS)NrV)rSr	slis
ne1
line2
sline2
sne1r<)
rrr	r=r8rQrrrr>)rrr
r
r�&test_readline_limit_with_existing_data�s




z2StreamTests.test_readline_limit_with_existing_datacCs�tj|jd�}|�|���|�d�|�|���|j�|���|�|���|�d�|��|j�|���|�	|���dS)N)r	s
some data
)
rrr	�assertFalseZat_eofr=rrrKr)rrr
r
r�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�����WdQRX|�d�j	���
d
�|�t��}|j�����WdQRX|�d�j	�dS)N�)rSr	cs*��d���d���d����dS)Nschunk1schunk2schunk3
)r=rKr
)rr
rrDs


z+StreamTests.test_readline_limit.<locals>.cbr<cs*��d���d���d����dS)Nschunk1schunk2
schunk3
)r=rKr
)rr
rrD-s


schunk3
s1234567
s	12345678
s12345678)rrr	rFr8rQrrrr>r=)rrDrX�cmr
)rr�test_readline_limits2


zStreamTests.test_readline_limitcCsdtj|jd�}|�|jdd��|�|jdd��|j�|���}|�d|�|�d|j�dS)N)r	�sline1
sline2
line3
)	rrr	r=r@rrrr>)rrrXr
r
r�test_readline_nolimit_nowaitIsz(StreamTests.test_readline_nolimit_nowaitcCs@tj|jd�}|�d�|��|j�|���}|�d|�dS)N)r	s	some data)rrr	r=rKrrr)rrrXr
r
r�test_readline_eofUs

zStreamTests.test_readline_eofcCs6tj|jd�}|��|j�|���}|�d|�dS)N)r	r<)rrr	rKrrr)rrrXr
r
r�test_readline_empty_eof]sz#StreamTests.test_readline_empty_eofcCsZtj|jd�}|�|j�|j�|���|j�|�d��}|�d|�|�d|j	�dS)N)r	r]sline2
lsine3
)
rrr	r=r@rrrrr>)rrr%r
r
r�test_readline_read_byte_countdsz)StreamTests.test_readline_read_byte_countcCshtj|jd�}|�d�|j�|���}|�d|�|�t��|�	t|jj|���|�d|j
�dS)N)r	sline
r<)rrr	r=rrrrPrQr8r>)rrr%r
r
r�test_readline_exceptionos
z#StreamTests.test_readline_exceptionc	Cs>tj|jd�}|�td��|j�|jdd��WdQRXdS)N)r	zSeparator should ber<)�	separator)rrr	rTrQr�	readuntil)rrr
r
r�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)N)r	slineAAAsAAA)rfr<s
lineAAAxxxsxxx)rrr	r=rrgrr>)rrr%r
r
r�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)
N)r	sQWEaasXYaa�asaaas
QWEaaXYaaar<sXYasaasXaaasXXXsXXXaaa)rrr	r=rrgrr>)rrr%r
r
r�test_readuntil_multi_chunks_1�s8











z)StreamTests.test_readuntil_multi_chunks_1c	Csztj|jd�}|�d�|��|�tj��}|j�|�d��WdQRX|�	|j
jd�|�|j
j
�|�	d|j�dS)N)r	ssome dataAAsAAAr<)rrr	r=rKr8�IncompleteReadErrorrrgr�	exception�partial�assertIsNone�expectedr>)rrr^r
r
r�test_readuntil_eof�s
zStreamTests.test_readuntil_eofc	Cs�tj|jdd�}|�d�|�tjd��}|j�|�d��WdQRX|�d|j	�|�d�|�tjd��}|j�|�d��WdQRX|�d|j	�dS)	NrV)r	rSssome dataAAz	not foundsAAA�Azis foundssome dataAAA)
rrr	r=rT�LimitOverrunErrorrrgrr>)rrr^r
r
r�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��WdQRX|�|j|j�dS)N)r	rr<zless than zerorM)rrr	r=r@r�readexactlyrr>rTrQ)rrr%r
r
r�test_readexactly_zero_or_less�sz)StreamTests.test_readexactly_zero_or_lesscs�tj�jd��dt�j�}tj��|��jd�}��fdd�}�j�|��j�|�}��	�j�j|���	�j�j
�dS)N)r	rOcs(���j����j����j�dS)N)r=r@r
)rrr
rrD�sz(StreamTests.test_readexactly.<locals>.cb)rrr	�lenr@rErurFrrr>)r�nrGrDr%r
)rrr�test_readexactly�szStreamTests.test_readexactlycCsJtjd|jd�}|�d�|j�|�d��}|�d|�|�d|j�dS)NrV)rSr	schunkrIr<)rrr	r=rrurr>)rrr%r
r
r�test_readexactly_limit�s

z"StreamTests.test_readexactly_limitc	s�tj�jd��dt�j�}tj��|��jd�}��fdd�}�j�|���tj	��}�j�
|�WdQRX��|jj
�j���|jj|���t|j�d���d�j�dS)N)r	rOcs���j����dS)N)r=r@rKr
)rrr
rrD�sz,StreamTests.test_readexactly_eof.<locals>.cbz-18 bytes read on a total of 36 expected bytesr<)rrr	rwr@rErurFr8rlrrrmrnrp�strr>)rrxrGrDr^r
)rrr�test_readexactly_eof�sz StreamTests.test_readexactly_eofcCs^tj|jd�}|�d�|j�|�d��}|�d|�|�t��|�	t|jj|�d��dS)N)r	sline
rOsli)
rrr	r=rrurrPrQr8)rrr%r
r
r�test_readexactly_exception	s
z&StreamTests.test_readexactly_exceptioncCs@tj|jd�}|�|���t�}|�|�|�|��|�dS)N)r	)rrr	rormrQrPr)rr�excr
r
r�test_exceptions

zStreamTests.test_exceptioncsttj|jd��tj�fdd��}tj���|jd�}tj|�|jd�}|j�tj||g|jd��|�t	|j
�dS)N)r	cs��t��dS)N)rPrQr
)rr
r�set_errsz2StreamTests.test_exception_waiter.<locals>.set_err)rrr	�	coroutinerErr�waitr8rQ�result)rr�Zt1Zt2r
)rr�test_exception_waitersz!StreamTests.test_exception_waitercCsntj|jd�}tj|��|jd�}t�|j�|��t�|j�|�t	d��t�|j�|�
|jd�dS)N)r	�message)rrr	rErrrZcancelrP�RuntimeErrorr�_waiter)rr�tr
r
r�test_exception_cancel*sz!StreamTests.test_exception_cancelcs�Gdd�d�}�fdd�}|�j�}|��}�j�tj||��jd��}|����|d�|�j�}|��}�j�tj||��jd��}|����|d�dS)Nc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)z/StreamTests.test_start_server.<locals>.MyServercSsd|_||_dS)N)�serverr	)rr	r
r
r�__init__:sz8StreamTests.test_start_server.<locals>.MyServer.__init__c�s2|��IdH}|�|�|��IdH|��dS)N)rr�drainr)r�
client_reader�
client_writerr%r
r
r�
handle_client>s
z=StreamTests.test_start_server.<locals>.MyServer.handle_clientcSs8t��}|�d�|j�tj|j||jd��|_|��S)N)z	127.0.0.1r)�sockr	)	�socket�bindr	rr�start_serverr�r��getsockname)rr�r
r
r�startDs
z5StreamTests.test_start_server.<locals>.MyServer.startcSs|j�|�||��dS)N)r	�create_taskr�)rr�r�r
r
r�handle_client_callbackMszFStreamTests.test_start_server.<locals>.MyServer.handle_client_callbackcSsNt��}|�d�|��}|��|j�tj|j|d|d|jd��|_	|S)N)z	127.0.0.1rr�)�host�portr	)
r�r�r�rr	rrr�r�r�)rr��addrr
r
r�start_callbackQs
z>StreamTests.test_start_server.<locals>.MyServer.start_callbackcSs0|jdk	r,|j��|j�|j���d|_dS)N)r�rr	r�wait_closed)rr
r
r�stop\s

z4StreamTests.test_start_server.<locals>.MyServer.stopN)	�__name__�
__module__�__qualname__r�r�r�r�r�r�r
r
r
r�MyServer8s	r�c�s@tj|d�ji�IdH\}}|�d�|��IdH}|��|S)Nr	s
hello world!
)rr(r	rrr)r�r"r#�msgback)rr
r�clientbs
z-StreamTests.test_start_server.<locals>.client)r	s
hello world!
)r	r�rrrEr�rr�)rr�r�r�r��msgr
)rr�test_start_server6s*

zStreamTests.test_start_serverc	s�Gdd�d�}�fdd�}t���J}|�j|�}|���j�tj||��jd��}|����|d�WdQRXt���J}|�j|�}|�	��j�tj||��jd��}|����|d�WdQRXdS)Nc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)z4StreamTests.test_start_unix_server.<locals>.MyServercSsd|_||_||_dS)N)r�r	�path)rr	r�r
r
rr��sz=StreamTests.test_start_unix_server.<locals>.MyServer.__init__c�s2|��IdH}|�|�|��IdH|��dS)N)rrr�r)rr�r�r%r
r
rr��s
zBStreamTests.test_start_unix_server.<locals>.MyServer.handle_clientcSs$|j�tj|j|j|jd��|_dS)N)r�r	)r	rr�start_unix_serverr�r�r�)rr
r
rr��sz:StreamTests.test_start_unix_server.<locals>.MyServer.startcSs|j�|�||��dS)N)r	r�r�)rr�r�r
r
rr��szKStreamTests.test_start_unix_server.<locals>.MyServer.handle_client_callbackcSs(tj|j|j|jd�}|j�|�|_dS)N)r�r	)rr�r�r�r	rr�)rr�r
r
rr��s
zCStreamTests.test_start_unix_server.<locals>.MyServer.start_callbackcSs0|jdk	r,|j��|j�|j���d|_dS)N)r�rr	rr�)rr
r
rr��s

z9StreamTests.test_start_unix_server.<locals>.MyServer.stopN)	r�r�r�r�r�r�r�r�r�r
r
r
rr�sr�c�s>tj|�jd�IdH\}}|�d�|��IdH}|��|S)N)r	s
hello world!
)rr.r	rrr)r�r"r#r�)rr
rr��s
z2StreamTests.test_start_unix_server.<locals>.client)r	s
hello world!
)
rZunix_socket_pathr	r�rrrEr�rr�)rr�r�r�r�r�r
)rr�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||h|jd
��}
|j�
|
�}|j�
|���Wdt�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	rS)r	cs�S)Nr
r
)�protocolr
r�<lambda>�r<z<StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>)Zpass_fdsr	rMsdata)�os�pipe�sys�
executabler{�openrrr	�StreamReaderProtocolrZconnect_read_pipeZSafeChildWatcherZattach_loopZset_child_watcherZcreate_subprocess_execr�rrr)
r�codeZrfdZwfd�argsr�r"Z	transport�_ZwatcherZcreate�procr%r
)r�r�test_read_all_from_pipe_reader�s*


z*StreamTests.test_read_all_from_pipe_readercCs6|�tjd�t�|j�t��}|�|j|j�dS)N)�
addCleanuprr
r	rrr)rr"r
r
r�test_streamreader_constructor�sz)StreamTests.test_streamreader_constructorcCs@|�tjd�t�|j�t��}t�|�}|�|j|j�dS)N)	r�rr
r	r�Mockr�rr)rr"r�r
r
r�%test_streamreaderprotocol_constructor�s

z1StreamTests.test_streamreaderprotocol_constructorc	s|t����fdd�}�fdd�}tj|d�}|�d�|�����}��tt	f���j
�||��WdQRX|��dS)Nc	sVt��}|�@|�d�|�d�|��}��|�|��\}}|��WdQRXdS)N)Z	localhostrr�)r�r�Zlistenr�ZputZacceptr)r�r�Zcltr�)�qr
rr�s


z-StreamTests.test_drain_raises.<locals>.serverc�s>tj||�jd�IdH\}}x|�d�|��IdHqWdS)N)r	sfoo
)rr(r	rr�)r�r�r"r#)rr
rr�
s

z-StreamTests.test_drain_raises.<locals>.client)�targetT)
�queueZQueue�	threadingZThreadZ	setDaemonr��getr8�ConnectionResetError�BrokenPipeErrorr	r�join)rr�r�Zthreadr�r
)r�rr�test_drain_raises�s	
zStreamTests.test_drain_raisescCs"tj|jd�}|�dt|��dS)N)r	z<StreamReader>)rrr	r�repr)rrr
r
r�
test___repr__#szStreamTests.test___repr__cCs$tj|jdd�}|�dt|��dS)N�{)r	rSz<StreamReader limit=123>)rrr	rr�)rrr
r
r�test___repr__nondefault_limit'sz)StreamTests.test___repr__nondefault_limitcCs*tj|jd�}|��|�dt|��dS)N)r	z<StreamReader eof>)rrr	rKrr�)rrr
r
r�test___repr__eof+szStreamTests.test___repr__eofcCs,tj|jd�}|�d�|�dt|��dS)N)r	sdataz<StreamReader 4 bytes>)rrr	r=rr�)rrr
r
r�test___repr__data0s
zStreamTests.test___repr__datacCs2tj|jd�}t�}|�|�|�dt|��dS)N)r	z'<StreamReader exception=RuntimeError()>)rrr	r�rPrr�)rrr~r
r
r�test___repr__exception5s

z"StreamTests.test___repr__exceptioncCsbtj|jd�}tj|jd�|_|�t|�d�|j�d�|j�|j�d|_|�	dt|��dS)N)r	z,<StreamReader waiter=<Future pending[\S ]*>>z<StreamReader>)
rrr	ZFuturer�ZassertRegexr�Z
set_resultrr)rrr
r
r�test___repr__waiter<szStreamTests.test___repr__waitercCsBtj|jd�}t��|_t��|j_d|jj_|�dt	|��dS)N)r	z<Transport>z$<StreamReader transport=<Transport>>)
rrr	rr�Z
_transport�__repr__rrr�)rrr
r
r�test___repr__transportGs


z"StreamTests.test___repr__transportc
Cs�t�dd�}xvttjd�D]d}|j|d��Nt�tj||d��}|�t	|�t	|��|�|j
|j
�|�|j|j�WdQRXqWdS)Nsabc�
r�)�pickle_protocol)r�)rrl�range�pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsrr{rnrp)r�e�proto�e2r
r
r�#test_IncompleteReadError_pickleableNsz/StreamTests.test_IncompleteReadError_pickleablec
Csxt�dd�}xfttjd�D]T}|j|d��>t�tj||d��}|�t	|�t	|��|�|j
|j
�WdQRXqWdS)Nr�r�r�)r�)r�)rrsr�r�r�r�r�r�rr{�consumed)rr�r�r�r
r
r�!test_LimitOverrunError_pickleableWsz-StreamTests.test_LimitOverrunError_pickleablec	Cs�t����}|j�tj|jd|ji��\}}|�d�|��}|j�|�}|�	|d�|�
�}|j�|�}|�|�d��|�
|���|��|�|���|j�|���WdQRXdS)Nr	sGET / HTTP/1.0

sHTTP/1.0 200 OK
s

Test message)rr'r	rrr(r)rrrrrr r[Z
is_closingrr�)rr*�rd�wrr$r%r
r
r�test_wait_closed_on_close_s

z%StreamTests.test_wait_closed_on_closec	Cszt���h}|j�tj|jd|ji��\}}|�d�|��}|j�|�}|�	|d�|�
�|j�|���WdQRXdS)Nr	sGET / HTTP/1.0

sHTTP/1.0 200 OK
)rr'r	rrr(r)rrrrr�)rr*r�r�r$r%r
r
r�*test_wait_closed_on_close_with_unread_dataps

z6StreamTests.test_wait_closed_on_close_with_unread_data)Kr�r�r�r@rrrZpatchrr&r,rZskip_unless_bind_unix_socketr/r0�unittestZskipIfr2r4r6r9r:r;r?rArBrHrJrLrNrRrUrWrYrZr\r_rarbrcrdrerhrirkrqrtrvryrzr|r}rr�r�r�r�r��platformr�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__r
r
)rrrs~
		

/#
FB'	
+	r�__main__)�__doc__rr�r�r�r�r�r�r�rZtestrr2�ImportErrorrZtest.test_asynciorrZTestCaserr��mainr
r
r
r�<module>s2
m