Your IP : 216.73.216.213


Current Path : /opt/alt/python311/lib64/python3.11/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python311/lib64/python3.11/test/test_asyncio/__pycache__/test_streams.cpython-311.pyc

�

�0�i�����dZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZ	ddlZn
#e
$rdZYnwxYwddlZddlmZd�ZGd�dej��Zed	krej��dSdS)
zTests for streams.py.�N)�mock)�
socket_helper)�utilsc�.�tjd��dS�N)�asyncio�set_event_loop_policy���E/opt/alt/python311/lib64/python3.11/test/test_asyncio/test_streams.py�tearDownModuler
s���!�$�'�'�'�'�'rc���eZdZdZ�fd�Z�fd�Zd�Zd�Zej	d���Z
d�Zej
edud	��d
���Zej	ej
edud	��d�����Zd�Zd
�Zej	d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d �Z%d!�Z&d"�Z'd#�Z(d$�Z)d%�Z*d&�Z+d'�Z,d(�Z-d)�Z.d*�Z/d+�Z0d,�Z1d-�Z2d.�Z3d/�Z4ej	d0���Z5ej
edud	��d1���Z6ej
e7j8d2kd3��d4���Z9d5�Z:d6�Z;d7�Z<d8�Z=d9�Z>d:�Z?d;�Z@d<�ZAd=�ZBd>�ZCd?�ZDd@�ZEdA�ZFdB�ZGdC�ZHdD�ZIdE�ZJdF�ZKdG�ZLdH�ZMdI�ZNdJ�ZOdK�ZPdL�ZQdM�ZRdN�ZSdO�ZT�xZUS)P�StreamTestssline1
line2
line3
c���t�����tj��|_|�|j��dSr)�super�setUpr�new_event_loop�loop�set_event_loop��self�	__class__s �rrzStreamTests.setUps@���
���
�
�����*�,�,��	����D�I�&�&�&�&�&rc�z��tj|j��t�����dSr)�
test_utils�run_brieflyrr�tearDownrs �rrzStreamTests.tearDown#s4�����t�y�)�)�)�	���������rc�2��g�|j��fd���|j�|��\}}|�d��|���}|j�|��}|�|d��|���}|j�|��}|�|�d����|�	��|��g��dS)Nc�.����|��Sr��append�r�ctx�messagess  �r�<lambda>z7StreamTests._basetest_open_connection.<locals>.<lambda>,����(�/�/�#�:N�:N�r�GET / HTTP/1.0

�HTTP/1.0 200 OK
�

Test message)
r�set_exception_handler�run_until_complete�write�readline�assertEqual�read�
assertTrue�endswith�close�r�open_connection_fut�reader�writer�f�datar#s      @r�_basetest_open_connectionz%StreamTests._basetest_open_connection*s�������	�'�'�(N�(N�(N�(N�O�O�O���5�5�6I�J�J�������.�/�/�/��O�O�����y�+�+�A�.�.������5�6�6�6��K�K�M�M���y�+�+�A�.�.������
�
�&=�>�>�?�?�?�����������2�&�&�&�&�&rc��tj��5}tj|j�}|�|��ddd��dS#1swxYwYdSr)r�run_test_serverr�open_connection�addressr8�r�httpd�conn_futs   r�test_open_connectionz StreamTests.test_open_connection8s���
�
'�
)�
)�	5�U��.��
�>�H��*�*�8�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5��)A
�
A�Ac��tj��5}tj|j��}|�|��ddd��dS#1swxYwYdSr)r�run_test_unix_serverr�open_unix_connectionr<r8r=s   r�test_open_unix_connectionz%StreamTests.test_open_unix_connection=s���
�
,�
.�
.�	5�%��3�E�M�B�B�H��*�*�8�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5��/A�A�Ac���g�|j��fd���	|j�|��\}}tjd��n#tjd��wxYw|�d��|���}|j�|��}|�|�d����|�	��|�
�g��dS)Nc�.����|��Srrr!s  �rr$zCStreamTests._basetest_open_connection_no_loop_ssl.<locals>.<lambda>Er%rr&r()rr)r*rrr+r.r/r0r1r-r2s      @r�%_basetest_open_connection_no_loop_sslz1StreamTests._basetest_open_connection_no_loop_sslCs�������	�'�'�(N�(N�(N�(N�O�O�O�	)�!�Y�9�9�:M�N�N�N�F�F��"�4�(�(�(�(��G�"�4�(�(�(�(�������.�/�/�/��K�K�M�M���y�+�+�A�.�.������
�
�&=�>�>�?�?�?�����������2�&�&�&�&�&s�A�A*Nz
No ssl modulec���tjd���5}tj|jdtj��i�}|�|��ddd��dS#1swxYwYdS)NT��use_ssl�ssl)rr:rr;r<�dummy_ssl_contextrIr=s   r� test_open_connection_no_loop_sslz,StreamTests.test_open_connection_no_loop_sslRs���
�
'��
5�
5�
5�	A���.���4��0�2�2�4�4�H�
�6�6�x�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�=A � A$�'A$c���tjd���5}tj|jtj��d���}|�|��ddd��dS#1swxYwYdS)NTrK�)rM�server_hostname)rrCrrDr<rNrIr=s   r�%test_open_unix_connection_no_loop_sslz1StreamTests.test_open_unix_connection_no_loop_ssl[s����
,�T�
:�
:�
:�	A�e��3��
��0�2�2� "����H�
�6�6�x�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�AA&�&A*�-A*c���g�|j��fd���|j�|��\}}|j�t����|���}|�t
��5|j�|��ddd��n#1swxYwY|���tj
|j��|��g��dS)Nc�.����|��Srrr!s  �rr$z=StreamTests._basetest_open_connection_error.<locals>.<lambda>ir%r)rr)r*�	_protocol�connection_lost�ZeroDivisionErrorr.�assertRaisesr1rrr-)rr3r4r5r6r#s     @r�_basetest_open_connection_errorz+StreamTests._basetest_open_connection_errorgs)������	�'�'�(N�(N�(N�(N�O�O�O���5�5�6I�J�J������(�(�):�)<�)<�=�=�=��K�K�M�M��
�
�
�0�
1�
1�	,�	,��I�(�(��+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,���������t�y�)�)�)�����2�&�&�&�&�&s�B9�9B=�B=c��tj��5}tj|j�}|�|��ddd��dS#1swxYwYdSr)rr:rr;r<rZr=s   r�test_open_connection_errorz&StreamTests.test_open_connection_errorss���
�
'�
)�
)�	;�U��.��
�>�H��0�0��:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;rAc��tj��5}tj|j��}|�|��ddd��dS#1swxYwYdSr)rrCrrDr<rZr=s   r�test_open_unix_connection_errorz+StreamTests.test_open_unix_connection_errorxs���
�
,�
.�
.�	;�%��3�E�M�B�B�H��0�0��:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;rFc��tj|j���}|�d��|�d|j��dS�N�rr)r�StreamReaderr�	feed_datar-�_buffer�r�streams  r�test_feed_empty_dataz StreamTests.test_feed_empty_data~sI���%�4�9�5�5�5�������������f�n�-�-�-�-�-rc��tj|j���}|�|j��|�|j|j��dS�Nra)rrbrrc�DATAr-rdres  r�test_feed_nonempty_dataz#StreamTests.test_feed_nonempty_data�sM���%�4�9�5�5�5�������#�#�#������F�N�3�3�3�3�3rc�4�tj|j���}|�|j��|j�|�d����}|�d|��|�|j|j��dS)Nrarr)	rrbrrcrjr*r.r-rd�rrfr7s   r�test_read_zerozStreamTests.test_read_zero�s����%�4�9�5�5�5�������#�#�#��y�+�+�F�K�K��N�N�;�;������d�#�#�#������F�N�3�3�3�3�3rc�x���tj�j�����j���d����}��fd�}�j�|���j�|��}���j|����d�j	��dS)Nra�c�<�����j��dSr�rcrjres��r�cbz!StreamTests.test_read.<locals>.cb�s������T�Y�'�'�'�'�'rr)
rrbr�create_taskr.�	call_soonr*r-rjrd�r�	read_taskrsr7rfs`   @r�	test_readzStreamTests.test_read�s������%�4�9�5�5�5���I�)�)�&�+�+�b�/�/�:�:�	�	(�	(�	(�	(�	(�	(��	���B�����y�+�+�I�6�6�������D�)�)�)�����f�n�-�-�-�-�-rc�J�tj|j���}|�d��|�d��|j�|�d����}|�d|��|�d|j��dS)Nrasline1sline2��rrbrrcr*r.r-rdrms   r�test_read_line_breaksz!StreamTests.test_read_line_breaks�s����%�4�9�5�5�5������"�"�"�����"�"�"��y�+�+�F�K�K��N�N�;�;������4�(�(�(�����6�>�2�2�2�2�2rc�j��tj|j����|j���d����}�fd�}|j�|��|j�|��}|�d|��|�d�j��dS)Nraic�0������dSr)�feed_eof�rfs�rrsz%StreamTests.test_read_eof.<locals>.cb�s����O�O�����rr�	rrbrrtr.rur*r-rdrvs    @r�
test_read_eofzStreamTests.test_read_eof�s�����%�4�9�5�5�5���I�)�)�&�+�+�d�*;�*;�<�<�	�	�	�	�	�	��	���B�����y�+�+�I�6�6������d�#�#�#�����f�n�-�-�-�-�-rc�j��tj|j����|j���d����}�fd�}|j�|��|j�|��}|�d|��|�d�j��dS)Nra���c�����d����d������dS)Nschunk1
�chunk2�rcrr�s�rrsz+StreamTests.test_read_until_eof.<locals>.cb�sA������[�)�)�)����Y�'�'�'��O�O�����rs
chunk1
chunk2rr�rvs    @r�test_read_until_eofzStreamTests.test_read_until_eof�s�����%�4�9�5�5�5���I�)�)�&�+�+�b�/�/�:�:�	�	�	�	�	�	�	
�	���B�����y�+�+�I�6�6�����*�D�1�1�1�����f�n�-�-�-�-�-rc��tj|j���}|�d��|j�|�d����}|�d|��|�t����|�	t|jj|�d����dS�Nra�line
��li)
rrbrrcr*r.r-�
set_exception�
ValueErrorrYrms   r�test_read_exceptionzStreamTests.test_read_exception�s����%�4�9�5�5�5������#�#�#��y�+�+�F�K�K��N�N�;�;�������%�%�%����Z�\�\�*�*�*������	�4�f�k�k�!�n�n�	F�	F�	F�	F�	Frc�@�|�td��5tjd|j���ddd��n#1swxYwY|�td��5tjd|j���ddd��dS#1swxYwYdS)N�imitr��limitrr�)�assertRaisesRegexr�rrbr�rs r�test_invalid_limitzStreamTests.test_invalid_limit�s��
�
#�
#�J��
7�
7�	:�	:�� �q�t�y�9�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:��
#�
#�J��
7�
7�	;�	;�� �r��	�:�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s#�A�A�A�*B�B�Bc�"�tjd|j���}|�d��|j�|�d����}|�d|��|�d|j��dS�N�r�schunkrzrr{rms   r�test_read_limitzStreamTests.test_read_limit�s����%�A�D�I�>�>�>������"�"�"��y�+�+�F�K�K��N�N�;�;������4�(�(�(�����f�n�-�-�-�-�-rc���tj|j������d��|j�������}�fd�}|j�|��|j�|��}|�d|��|�d�j	��dS)Nraschunk1 c�����d����d����d��dS)Nschunk2 schunk3 s
 chunk4)rcr�s�rrsz%StreamTests.test_readline.<locals>.cb�sE������Z�(�(�(����Z�(�(�(����\�*�*�*�*�*rschunk1 chunk2 chunk3 
s chunk4)
rrbrrcrtr,rur*r-rd)rrwrs�linerfs    @r�
test_readlinezStreamTests.test_readline�s�����%�4�9�5�5�5������$�$�$��I�)�)�&�/�/�*;�*;�<�<�	�	+�	+�	+�	+�	+�	
�	���B�����y�+�+�I�6�6�����3�T�:�:�:�����V�^�4�4�4�4�4rc��tjd|j���}|�d��|�d��|�t
|jj|�����|�d|j	��tjd|j���}|�d��|�d��|�d��|�t
|jj|�����|�d|j	��dS)Nr�r�r�s
ne1
line2
sline2
sne1r)
rrbrrcrYr�r*r,r-rdres  r�&test_readline_limit_with_existing_dataz2StreamTests.test_readline_limit_with_existing_data�s2���%�A�D�I�>�>�>�������������)�)�)������	�4�f�o�o�6G�6G�	I�	I�	I�	
����V�^�4�4�4��%�A�D�I�>�>�>������������� � � �������������	�4�f�o�o�6G�6G�	I�	I�	I�	
����f�n�-�-�-�-�-rc��tj|j���}|�|�����|�d��|�|�����|j�|�����|�|�����|�d��|���|j�|�����|�	|�����dS)Nras
some data
)
rrbr�assertFalse�at_eofrcr*r,rr/res  r�test_at_eofzStreamTests.test_at_eof
s���%�4�9�5�5�5����������)�)�)�����(�(�(���������)�)�)��	�$�$�V�_�_�%6�%6�7�7�7���������)�)�)�����(�(�(��������	�$�$�V�_�_�%6�%6�7�7�7�����
�
���(�(�(�(�(rc���tjd|j�����fd�}|j�|��|�t
|jj������|�d�j	��tjd|j�����fd�}|j�|��|�t
|jj������|�d�j	��tjd|j������
d��|j�������}|�d|��|�d�j	����
d��|�t
��5}|j�������ddd��n#1swxYwY|�d�j	����
d	��|�t
��5}|j�������ddd��n#1swxYwY|�d�j	��dS)
N�r�c�����d����d����d������dS)N�chunk1r��chunk3
r�r�s�rrsz+StreamTests.test_readline_limit.<locals>.cb!sU������Y�'�'�'����Y�'�'�'����[�)�)�)��O�O�����rrc�����d����d����d������dS)Nr�schunk2
r�r�r�s�rrsz+StreamTests.test_readline_limit.<locals>.cb/sU������Y�'�'�'����[�)�)�)����[�)�)�)��O�O�����rr�s1234567
s	12345678
s12345678)rrbrrurYr�r*r,r-rdrc)rrsr��cmrfs    @r�test_readline_limitzStreamTests.test_readline_limits
����%�A�D�I�>�>�>��	�	�	�	�	�
	
�	���B���������	�4�f�o�o�6G�6G�	I�	I�	I�	
����f�n�-�-�-��%�A�D�I�>�>�>��	�	�	�	�	�
	
�	���B���������	�4�f�o�o�6G�6G�	I�	I�	I�����f�n�5�5�5��%�A�D�I�>�>�>������&�&�&��y�+�+�F�O�O�,=�,=�>�>������t�,�,�,�����f�n�-�-�-�����'�'�'�
�
�
�z�
*�
*�	<�b��I�(�(����):�):�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�����f�n�-�-�-�����%�%�%�
�
�
�z�
*�
*�	<�b��I�(�(����):�):�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�����f�n�-�-�-�-�-s$�-H�H�H�&-J�J#�&J#c�|�tj|j���}|�|jdd���|�|jdd���|j�|�����}|�d|��|�d|j��dS)Nra�sline1
sline2
line3
)	rrbrrcrjr*r,r-rd�rrfr�s   r�test_readline_nolimit_nowaitz(StreamTests.test_readline_nolimit_nowaitKs����%�4�9�5�5�5�������2�A�2��'�'�'������1�2�2��'�'�'��y�+�+�F�O�O�,=�,=�>�>������T�*�*�*����*�F�N�;�;�;�;�;rc��tj|j���}|�d��|���|j�|�����}|�d|��dS)Nras	some data)rrbrrcrr*r,r-r�s   r�test_readline_eofzStreamTests.test_readline_eofWsv���%�4�9�5�5�5������&�&�&��������y�+�+�F�O�O�,=�,=�>�>������t�,�,�,�,�,rc���tj|j���}|���|j�|�����}|�d|��dSr`)rrbrrr*r,r-r�s   r�test_readline_empty_eofz#StreamTests.test_readline_empty_eof_sb���%�4�9�5�5�5���������y�+�+�F�O�O�,=�,=�>�>������d�#�#�#�#�#rc��tj|j���}|�|j��|j�|�����|j�|�d����}|�d|��|�d|j	��dS)Nrar�sline2
lsine3
)
rrbrrcrjr*r,r.r-rdrms   r�test_readline_read_byte_countz)StreamTests.test_readline_read_byte_countfs����%�4�9�5�5�5�������#�#�#��	�$�$�V�_�_�%6�%6�7�7�7��y�+�+�F�K�K��N�N�;�;������d�+�+�+�����F�N�3�3�3�3�3rc���tj|j���}|�d��|j�|�����}|�d|��|�t����|�	t|jj|�����|�d|j
��dS)Nrar�r)rrbrrcr*r,r-r�r�rYrdrms   r�test_readline_exceptionz#StreamTests.test_readline_exceptionqs����%�4�9�5�5�5������#�#�#��y�+�+�F�O�O�,=�,=�>�>������D�)�)�)����Z�\�\�*�*�*������	�4�f�o�o�6G�6G�	I�	I�	I�����f�n�-�-�-�-�-rc��tj|j���}|�td��5|j�|�d�����ddd��dS#1swxYwYdS)NrazSeparator should ber��	separator)rrbrr�r�r*�	readuntilres  r�test_readuntil_separatorz$StreamTests.test_readuntil_separator}s����%�4�9�5�5�5��
�
#�
#�J�0E�
F�
F�	J�	J��I�(�(��)9�)9�C�)9�)H�)H�I�I�I�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	Js�/A2�2A6�9A6c���tj|j���}|�d��|j�|�d�����}|�d|��|�d|j��|�d��|j�|�d����}|�d|��|�d|j��|�d��|j�|�d����}|�d|��|�d|j��dS)NraslineAAA�AAAr�rs
lineAAAxxxsxxx�rrbrrcr*r�r-rdrms   r�test_readuntil_multi_chunksz'StreamTests.test_readuntil_multi_chunks�sO���%�4�9�5�5�5������$�$�$��y�+�+�F�,<�,<�v�,<�,N�,N�O�O������T�*�*�*�����f�n�-�-�-�����$�$�$��y�+�+�F�,<�,<�V�,D�,D�E�E������T�*�*�*�����f�n�-�-�-�����'�'�'��y�+�+�F�,<�,<�V�,D�,D�E�E������T�*�*�*�������0�0�0�0�0rc���tj|j���}|�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
QWEaaXYaaarsXYasaasXaaasXXXsXXXaaar�rms   r�test_readuntil_multi_chunks_1z)StreamTests.test_readuntil_multi_chunks_1�s����%�4�9�5�5�5������"�"�"�����!�!�!���������y�+�+�F�,<�,<�V�,D�,D�E�E�������-�-�-�����f�n�-�-�-�����"�"�"����� � � ���������y�+�+�F�,<�,<�V�,D�,D�E�E�������-�-�-�����f�n�-�-�-����� � � ��y�+�+�F�,<�,<�V�,D�,D�E�E�������&�&�&�����f�n�-�-�-�����!�!�!��y�+�+�F�,<�,<�V�,D�,D�E�E������$�'�'�'�����f�n�-�-�-����� � � �����������������������y�+�+�F�,<�,<�V�,D�,D�E�E������D�)�)�)�����f�n�-�-�-�-�-rc��tj|j���}d}|�|��|���|�tjd��5}|j�|�d����ddd��n#1swxYwY|�	|j
j|��|�|j
j
��|�	d|j��dS)Nra�some dataAAzundefined expected bytesr�r)rrbrrcrr��IncompleteReadErrorr*r�r-�	exception�partial�assertIsNone�expectedrd)rrfr7r�s    r�test_readuntil_eofzStreamTests.test_readuntil_eof�s;���%�4�9�5�5�5�����������������
�
#�
#�G�$?�$>�@�@�	C�CE��I�(�(��)9�)9�&�)A�)A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	
�����-�t�4�4�4����"�,�/�0�0�0�����f�n�-�-�-�-�-s�&.B � B$�'B$c��tj|jd���}|�d��|�tjd��5}|j�|�d����ddd��n#1swxYwY|�d|j	��|�d��|�tjd��5}|j�|�d����ddd��n#1swxYwY|�d|j	��dS)	Nr��rr�r�z	not foundr��Azis foundssome dataAAA)
rrbrrcr��LimitOverrunErrorr*r�r-rd)rrfr�s   r�test_readuntil_limit_found_sepz*StreamTests.test_readuntil_limit_found_sep�s����%�4�9�A�>�>�>������(�(�(�
�
#�
#�G�$=�$/�1�1�	C�46��I�(�(��)9�)9�&�)A�)A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	
������8�8�8��������
�
#�
#�G�$=�$.�0�0�	C�35��I�(�(��)9�)9�&�)A�)A�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	
����&�.�9�9�9�9�9s$�.B�B�B�&.D � D$�'D$c�4�tj|j���}|�|j��|j�|�d����}|�d|��|�|j|j��|�	td��5|j�|�d����ddd��n#1swxYwY|�|j|j��dS)Nrarrzless than zeror�)rrbrrcrjr*�readexactlyr-rdr�r�rms   r�test_readexactly_zero_or_lessz)StreamTests.test_readexactly_zero_or_less�sA���%�4�9�5�5�5�������#�#�#��y�+�+�F�,>�,>�q�,A�,A�B�B������d�#�#�#������F�N�3�3�3�
�
#�
#�J�0@�
A�
A�	A�	A��I�(�(��);�);�B�)?�)?�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A������F�N�3�3�3�3�3s�3.C-�-C1�4C1c����tj�j����dt�j��z}�j���|����}��fd�}�j�|���j�|��}��	�j�jz|����	�j�j
��dS)Nrar�c������j�����j�����j��dSrrrres��rrsz(StreamTests.test_readexactly.<locals>.cb�sK������T�Y�'�'�'����T�Y�'�'�'����T�Y�'�'�'�'�'r)rrbr�lenrjrtr�rur*r-rd)r�nrwrsr7rfs`    @r�test_readexactlyzStreamTests.test_readexactly�s������%�4�9�5�5�5��
��D�I������I�)�)�&�*<�*<�Q�*?�*?�@�@�	�	(�	(�	(�	(�	(�	(�	
�	���B�����y�+�+�I�6�6�������T�Y�.��5�5�5������F�N�3�3�3�3�3rc�"�tjd|j���}|�d��|j�|�d����}|�d|��|�d|j��dSr�)rrbrrcr*r�r-rdrms   r�test_readexactly_limitz"StreamTests.test_readexactly_limit�s����%�A�D�I�>�>�>������"�"�"��y�+�+�F�,>�,>�q�,A�,A�B�B������4�(�(�(�����f�n�-�-�-�-�-rc����tj�j����dt�j��z}�j���|����}��fd�}�j�|����tj	��5}�j�
|��ddd��n#1swxYwY��|jj
�j����|jj|����t|j��d����d�j��dS)Nrar�c�d�����j������dSr)rcrjrres��rrsz,StreamTests.test_readexactly_eof.<locals>.cb�s/������T�Y�'�'�'��O�O�����rz-18 bytes read on a total of 36 expected bytesr)rrbrr�rjrtr�rurYr�r*r-r�r�r��strrd)rr�rwrsr�rfs`    @r�test_readexactly_eofz StreamTests.test_readexactly_eof�s������%�4�9�5�5�5��
��D�I������I�)�)�&�*<�*<�Q�*?�*?�@�@�	�	�	�	�	�	�	�	
�	���B����
�
�
�w�:�
;�
;�	4�r��I�(�(��3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4������-�t�y�9�9�9������.��2�2�2�����R�\�*�*�H�	J�	J�	J�����f�n�-�-�-�-�-s� C�C�Cc��tj|j���}|�d��|j�|�d����}|�d|��|�t����|�	t|jj|�d����dSr�)
rrbrrcr*r�r-r�r�rYrms   r�test_readexactly_exceptionz&StreamTests.test_readexactly_exceptions����%�4�9�5�5�5������#�#�#��y�+�+�F�,>�,>�q�,A�,A�B�B�������%�%�%����Z�\�\�*�*�*������	�4�f�6H�6H��6K�6K�	M�	M�	M�	M�	Mrc��tj|j���}|�|�����t��}|�|��|�|���|��dSri)rrbrr�r�r�r��assertIs�rrf�excs   r�test_exceptionzStreamTests.test_exceptionsz���%�4�9�5�5�5�����&�*�*�,�,�-�-�-��l�l�����S�!�!�!��
�
�f�&�&�(�(�#�.�.�.�.�.rc�~��tj|j�����fd�}|j�������}|j�|����}|j�tj||g����|�t|j	��dS)Nrac��N�K���t����dSr)r�r�r�s�r�set_errz2StreamTests.test_exception_waiter.<locals>.set_err"s%������ � ����.�.�.�.�.r)
rrbrrtr,r*�waitrYr��result)rr��t1�t2rfs    @r�test_exception_waiterz!StreamTests.test_exception_waiters�����%�4�9�5�5�5��	/�	/�	/�	/�	/��Y�
"�
"�6�?�?�#4�#4�
5�
5��
�Y�
"�
"�7�7�9�9�
-�
-���	�$�$�W�\�2�r�(�%;�%;�<�<�<����*�b�i�0�0�0�0�0rc���tj|j���}|j�|�����}tj|j��|���tj|j��|�td����tj|j��|�
|jd��dS)Nra�message)rrbrrtr,rr�cancelr��RuntimeErrorr��_waiter)rrf�ts   r�test_exception_cancelz!StreamTests.test_exception_cancel,s����%�4�9�5�5�5���I�!�!�&�/�/�"3�"3�4�4����t�y�)�)�)�	���
�
�
���t�y�)�)�)����\�)�4�4�5�5�5���t�y�)�)�)��
�
�f�n�d�+�+�+�+�+rc���Gd�d��}d�}g�|j��fd���||j��}|���}|j�|j�||������}|���|�|d��||j��}|���}|j�|j�||������}|���|�|d��|��g��dS)Nc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�/StreamTests.test_start_server.<locals>.MyServerc�"�d|_||_dSr��serverr�rrs  r�__init__z8StreamTests.test_start_server.<locals>.MyServer.__init__<���"��� ��	�	�	rc��K�|����d{V��}|�|��|����d{V��|���|����d{V��dSr�r,r+�drainr1�wait_closed�r�
client_reader�
client_writerr7s    r�
handle_clientz=StreamTests.test_start_server.<locals>.MyServer.handle_client@�����*�3�3�5�5�5�5�5�5�5�5���#�#�D�)�)�)�#�)�)�+�+�+�+�+�+�+�+�+��#�#�%�%�%�#�/�/�1�1�1�1�1�1�1�1�1�1�1rc���tjd��}|j�t	j|j|�����|_|���S�N�z	127.0.0.1r)�sock�	�socket�
create_serverrr*r�start_serverrr��getsockname�rrs  r�startz5StreamTests.test_start_server.<locals>.MyServer.startG�]���+�,<�=�=��"�i�:�:��(��);�.2�4�4�4�5�5����'�'�)�)�)rc�b�|j�|�||����dSr�rrtr�rrrs   r�handle_client_callbackzFStreamTests.test_start_server.<locals>.MyServer.handle_client_callbackN�D���	�%�%�d�&8�&8��9F�'H�'H�I�I�I�I�Irc��tjd��}|���}|���|j�t
j|j|d|d�����|_	|S)Nrr�)�host�port)
rrrr1rr*rrrr�)rr�addrs   r�start_callbackz>StreamTests.test_start_server.<locals>.MyServer.start_callbackRs}���+�,<�=�=���'�'�)�)���
�
����"�i�:�:��(��)D�.2�1�g�D��G�E�E�E�F�F����rc��|j�S|j���|j�|j�����d|_dSdSr�r�r1rr*rr�s r�stopz4StreamTests.test_start_server.<locals>.MyServer.stop[�U���;�*��K�%�%�'�'�'��I�0�0���1H�1H�1J�1J�K�K�K�"&�D�K�K�K�+�*rN�	�__name__�
__module__�__qualname__r�rrrrr"r
rr�MyServerr�:sq������
!�
!�
!�
2�
2�
2�
*�
*�
*�
I�
I�
I�
�
�
�
'�
'�
'�
'�
'rr(c���K�tj|��d{V��\}}|�d��|����d{V��}|���|����d{V��|S�N�
hello world!
)rr;r+r,r1r)rr4r5�msgbacks    r�clientz-StreamTests.test_start_server.<locals>.clientas�����#*�#:�D�#A�A�A�A�A�A�A�N�F�F��L�L�*�+�+�+�"�O�O�-�-�-�-�-�-�-�-�G��L�L�N�N�N��$�$�&�&�&�&�&�&�&�&�&��Nrc�.����|��Srrr!s  �rr$z/StreamTests.test_start_server.<locals>.<lambda>lr%rr+)rr)rr*rtr"r-r)rr(r-r�r�msgr#s      @r�test_start_serverzStreamTests.test_start_server8sd���%	'�%	'�%	'�%	'�%	'�%	'�%	'�%	'�N	�	�	����	�'�'�(N�(N�(N�(N�O�O�O���$�)�$�$���|�|�~�~���i�*�*�4�9�+@�+@������+N�+N�O�O�����
�
�
�����/�0�0�0���$�)�$�$���$�$�&�&���i�*�*�4�9�+@�+@������+N�+N�O�O�����
�
�
�����/�0�0�0�����2�&�&�&�&�&rc�f��Gd�d��}d�}g�|j��fd���tj��5}||j|��}|���|j�|j�||������}|���|�|d��ddd��n#1swxYwYtj��5}||j|��}|�	��|j�|j�||������}|���|�|d��ddd��n#1swxYwY|��g��dS)Nc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�4StreamTests.test_start_unix_server.<locals>.MyServerc�0�d|_||_||_dSr)r�r�path)rrr5s   rr�z=StreamTests.test_start_unix_server.<locals>.MyServer.__init__�s��"��� ��	� ��	�	�	rc��K�|����d{V��}|�|��|����d{V��|���|����d{V��dSrrrs    rrzBStreamTests.test_start_unix_server.<locals>.MyServer.handle_client�rrc��|j�tj|j|j�����|_dS�N)r5)rr*r�start_unix_serverrr5r�r�s rrz:StreamTests.test_start_unix_server.<locals>.MyServer.start�s>��"�i�:�:��-�d�.@�37�9�>�>�>�?�?����rc�b�|j�|�||����dSrrrs   rrzKStreamTests.test_start_unix_server.<locals>.MyServer.handle_client_callback�rrc��tj|j|j���}|j�|��|_dSr8)rr9rr5rr*r�)rrs  rrzCStreamTests.test_start_unix_server.<locals>.MyServer.start_callback�sA���1�$�2M�7;�y�B�B�B��"�i�:�:�5�A�A����rc��|j�S|j���|j�|j�����d|_dSdSrr!r�s rr"z9StreamTests.test_start_unix_server.<locals>.MyServer.stop�r#rNr$r
rrr(r3�st������
!�
!�
!�

2�
2�
2�
?�
?�
?�

I�
I�
I�
B�
B�
B�

'�
'�
'�
'�
'rr(c��K�tj|���d{V��\}}|�d��|����d{V��}|���|����d{V��|Sr*)rrDr+r,r1r)r5r4r5r,s    rr-z2StreamTests.test_start_unix_server.<locals>.client�s�����#*�#?��#E�#E�E�E�E�E�E�E�N�F�F��L�L�*�+�+�+�"�O�O�-�-�-�-�-�-�-�-�G��L�L�N�N�N��$�$�&�&�&�&�&�&�&�&�&��Nrc�.����|��Srrr!s  �rr$z4StreamTests.test_start_unix_server.<locals>.<lambda>�r%rr+)
rr)r�unix_socket_pathrr*rtr"r-r)rr(r-r5r�r/r#s      @r�test_start_unix_serverz"StreamTests.test_start_unix_server~s7��� 	'� 	'� 	'� 	'� 	'� 	'� 	'� 	'�D	�	�	����	�'�'�(N�(N�(N�(N�O�O�O��
(�
*�
*�	5�d��X�d�i��.�.�F��L�L�N�N�N��)�.�.��	�%�%�f�f�T�l�l�3�3�5�5�C��K�K�M�M�M����S�"3�4�4�4�
	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5��
(�
*�
*�	5�d��X�d�i��.�.�F��!�!�#�#�#��)�.�.��	�%�%�f�f�T�l�l�3�3�5�5�C��K�K�M�M�M����S�"3�4�4�4�
	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	
����2�&�&�&�&�&s&�BC�C�"C�9BF�F�Fc���Gd�d��}d�}g�|j��fd���||j��}|���}|j�||����\}}|���|��g��|�|d��|�|d��dS)Nc�&�eZdZd�Zd�Zd�Zd�ZdS)�,StreamTests.test_start_tls.<locals>.MyServerc�"�d|_||_dSrr�r�s  rr�z5StreamTests.test_start_tls.<locals>.MyServer.__init__�r�rc��>K�|����d{V��}|�|��|����d{V��|�d���J�|�tj�����d{V��|�d���J�|����d{V��}|�|��|����d{V��|���|����d{V��dS)N�
sslcontext)	r,r+r�get_extra_info�	start_tlsr�simple_server_sslcontextr1r)rrr�data1�data2s     rrz:StreamTests.test_start_tls.<locals>.MyServer.handle_client�sn����+�4�4�6�6�6�6�6�6�6�6���#�#�E�*�*�*�#�)�)�+�+�+�+�+�+�+�+�+�$�3�3�L�A�A�I�I�I�#�-�-��7�9�9�;�;�;�;�;�;�;�;�;�$�3�3�L�A�A�M�M�M�+�4�4�6�6�6�6�6�6�6�6���#�#�E�*�*�*�#�)�)�+�+�+�+�+�+�+�+�+��#�#�%�%�%�#�/�/�1�1�1�1�1�1�1�1�1�1�1rc���tjd��}|j�t	j|j|�����|_|���Sr
r
rs  rrz2StreamTests.test_start_tls.<locals>.MyServer.start�rrc��|j�S|j���|j�|j�����d|_dSdSrr!r�s rr"z1StreamTests.test_start_tls.<locals>.MyServer.stop�r#rN)r%r&r'r�rrr"r
rrr(rC�sP������
!�
!�
!�
2�
2�
2�
*�
*�
*�
'�
'�
'�
'�
'rr(c��pK�tj|��d{V��\}}|�d��|����d{V��|����d{V��}|�d���J�|�tj�����d{V��|�d���J�|�d��|����d{V��|����d{V��}|�	��|�
���d{V��||fS)N�hello world 1!
rF�hello world 2!
)rr;r+rr,rGrHr�simple_client_sslcontextr1r)rr4r5�msgback1�msgback2s     rr-z*StreamTests.test_start_tls.<locals>.client�sp����#*�#:�D�#A�A�A�A�A�A�A�N�F�F��L�L�,�-�-�-��,�,�.�.� � � � � � � �#�_�_�.�.�.�.�.�.�.�.�H��(�(��6�6�>�>�>��"�"�:�#F�#H�#H�I�I�I�I�I�I�I�I�I��(�(��6�6�B�B�B��L�L�,�-�-�-��,�,�.�.� � � � � � � �#�_�_�.�.�.�.�.�.�.�.�H��L�L�N�N�N��$�$�&�&�&�&�&�&�&�&�&��X�%�%rc�.����|��Srrr!s  �rr$z,StreamTests.test_start_tls.<locals>.<lambda>�r%rrOrP)rr)rr*r"r-)rr(r-r�r�msg1�msg2r#s       @r�test_start_tlszStreamTests.test_start_tls�s����	'�	'�	'�	'�	'�	'�	'�	'�B
	&�
	&�
	&����	�'�'�(N�(N�(N�(N�O�O�O���$�)�$�$���|�|�~�~���Y�1�1�&�&��,�,�?�?�
��d����
�
�
�����2�&�&�&�����2�3�3�3�����2�3�3�3�3�3r�win32zDon't have pipesc��
�d}tj��\}}tjd|t	|��g}t|dd��}t
j|jd���}t
j	||j����
|j�
|j��
fd�|����\}}t
j��}	|	�
|j��	t
j|	��t
j|d	|hi�}
|j�
|
��}|j�
|�����t
jd��n#t
jd��wxYwtj|��|j�
|�d
����}|�|d��dS)NzHimport os, sys
fd = int(sys.argv[1])
os.write(fd, b'data')
os.close(fd)
z-c�rbrrr�rac����Srr
��protocols�rr$z<StreamTests.test_read_all_from_pipe_reader.<locals>.<lambda>s����r�pass_fdsr��data)�os�pipe�sys�
executabler��openrrbr�StreamReaderProtocolr*�connect_read_pipe�SafeChildWatcher�attach_loop�set_child_watcher�create_subprocess_execr�r1r.r-)r�code�rfd�wfd�argsrar4�	transport�_�watcher�create�procr7r]s             @r�test_read_all_from_pipe_readerz*StreamTests.test_read_all_from_pipe_readers�������7�9�9���S����d�C��H�H�5���C��q�!�!���%�4�9�A�>�>�>���/��T�Y�G�G�G���y�3�3��I�'�'�(8�(8�(8�(8�$�?�?�A�A��	�1��*�,�,�����D�I�&�&�&�		,��%�g�.�.�.��3�������F��9�/�/��7�7�D��I�(�(������5�5�5��%�d�+�+�+�+��G�%�d�+�+�+�+����
���
�
�
��y�+�+�F�K�K��O�O�<�<������w�'�'�'�'�'s
�%A,E&�&E<c��|�td��5tj��ddd��dS#1swxYwYdS�Nzno current event loop)r�r�rrbr�s r�*test_streamreader_constructor_without_loopz6StreamTests.test_streamreader_constructor_without_loop+s���
�
#�
#�L�2I�
J�
J�	#�	#�� �"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	#�	#s�=�A�Ac��d�}|j�|����}|�|j|j��dS)Nc��,K�tj��Sr)rrbr
rr�testzHStreamTests.test_streamreader_constructor_use_running_loop.<locals>.test2s�����'�)�)�)r)rr*r��_loop)rrzr4s   r�.test_streamreader_constructor_use_running_loopz:StreamTests.test_streamreader_constructor_use_running_loop/sL��	*�	*�	*���-�-�d�d�f�f�5�5���
�
�f�l�D�I�.�.�.�.�.rc���|�tjd��tj|j��tj��}|�|j|j��dSr)�
addCleanuprrrrbr�r{�rr4s  r�-test_streamreader_constructor_use_global_loopz9StreamTests.test_streamreader_constructor_use_global_loop8sZ��	
����.��5�5�5���t�y�)�)�)��%�'�'���
�
�f�l�D�I�.�.�.�.�.rc��tj��}|�td��5t	j|��ddd��dS#1swxYwYdSrv)r�Mockr�r�rrers  r�2test_streamreaderprotocol_constructor_without_loopz>StreamTests.test_streamreaderprotocol_constructor_without_loopBs��������
�
#�
#�L�2I�
J�
J�	1�	1��(��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s�A�A�Ac���tj����fd�}|j�|����}|�|j|j��dS)Nc��0�K�tj���Sr)rre)r4s�rrzzPStreamTests.test_streamreaderprotocol_constructor_use_running_loop.<locals>.testKs������/��7�7�7r)rr�rr*r�r{)rrzr]r4s   @r�6test_streamreaderprotocol_constructor_use_running_loopzBStreamTests.test_streamreaderprotocol_constructor_use_running_loopGsb��������	8�	8�	8�	8�	8��9�/�/�����7�7���
�
�h�n�d�i�0�0�0�0�0rc��|�tjd��tj|j��t	j��}tj|��}|�|j|j��dSr)	r~rrrrr�rer�r{)rr4r]s   r�5test_streamreaderprotocol_constructor_use_global_loopzAStreamTests.test_streamreaderprotocol_constructor_use_global_loopPsg��	
����.��5�5�5���t�y�)�)�)�������/��7�7���
�
�h�n�d�i�0�0�0�0�0rc�l����d��fd�����fd�}�j�|����dS)Nrc��J�K�|����d{V���dz
�dS)Nr)�
_drain_helper)rf�draineds �r�drainerz0StreamTests.test_multiple_drain.<locals>.drainer^s8������&�&�(�(�(�(�(�(�(�(�(��q�L�G�G�Grc��X��K�tj��}tj�|�������|�d�j��tj��fd�td��D����d{V����	�d��dS)Ng�������?c�&��g|]
}������Sr
r
)�.0rpr�rfs  ��r�
<listcomp>zAStreamTests.test_multiple_drain.<locals>.main.<locals>.<listcomp>hs!���"F�"F�"F�q�7�7�6�?�?�"F�"F�"Fr�
)
r�get_running_loop�streams�FlowControlMixin�
pause_writing�
call_later�resume_writing�gather�ranger-)rrfr�r�rs @���r�mainz-StreamTests.test_multiple_drain.<locals>.maincs��������+�-�-�D��_�5�5�d�;�;�F�� � �"�"�"��O�O�C��!6�7�7�7��.�"F�"F�"F�"F�"F�E�"�I�I�"F�"F�"F�G�G�G�G�G�G�G�G����W�b�)�)�)�)�)r)rr*)rr�r�r�s` @@r�test_multiple_drainzStreamTests.test_multiple_drainZsj�������	�	�	�	�	�
	*�	*�	*�	*�	*�	*�	*�	
�	�$�$�T�T�V�V�,�,�,�,�,rc����g�|j��fd���tj����fd�}d�}t	j|���}d|_|�������}|�	tttf��5|j�
||���ddd��n#1swxYwY|���|�g���dS)Nc�.����|��Srrr!s  �rr$z/StreamTests.test_drain_raises.<locals>.<lambda>vr%rc�
��tjd��5}|���}��|��|���\}}|���ddd��dS#1swxYwYdS)N)�	localhostr)rrr�put�acceptr1)rr�cltrp�qs    �rr�z-StreamTests.test_drain_raises.<locals>.serverys�����%�&6�7�7�
�4��'�'�)�)�����d�����������Q��	�	����	
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�AA8�8A<�?A<c��K�tj||���d{V��\}}	|�d��|����d{V���0)NTsfoo
)rr;r+r)rrr4r5s    rr-z-StreamTests.test_drain_raises.<locals>.client�sj����#*�#:�4��#F�#F�F�F�F�F�F�F�N�F�F�
%����X�&�&�&��l�l�n�n�$�$�$�$�$�$�$�
%r)�targetT)rr)�queue�Queue�	threading�Thread�daemonr�getrY�ConnectionResetError�ConnectionAbortedError�BrokenPipeErrorr*�joinr-)rr�r-�threadrr#r�s     @@r�test_drain_raiseszStreamTests.test_drain_raisesmsV�������	�'�'�(N�(N�(N�(N�O�O�O��K�M�M��	�	�	�	�	�	%�	%�	%��!��0�0�0����
��������u�u�w�w���
�
� 4�6L� /� 1�2�2�	8�	8��I�(�(�����7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	���
�
�
�����X�&�&�&�&�&s�(C�C�Cc��tj|j���}|�dt	|����dS)Nra�<StreamReader>�rrbrr-�reprres  r�
test___repr__zStreamTests.test___repr__�s:���%�4�9�5�5�5�����)�4��<�<�8�8�8�8�8rc��tj|jd���}|�dt	|����dS)N�{r�z<StreamReader limit=123>r�res  r�test___repr__nondefault_limitz)StreamTests.test___repr__nondefault_limit�s<���%�4�9�C�@�@�@�����3�T�&�\�\�B�B�B�B�Brc��tj|j���}|���|�dt|����dS)Nraz<StreamReader eof>)rrbrrr-r�res  r�test___repr__eofzStreamTests.test___repr__eof�sJ���%�4�9�5�5�5�����������-�t�F�|�|�<�<�<�<�<rc��tj|j���}|�d��|�dt|����dS)Nrar_z<StreamReader 4 bytes>)rrbrrcr-r�res  r�test___repr__datazStreamTests.test___repr__data�sN���%�4�9�5�5�5������!�!�!����1�4��<�<�@�@�@�@�@rc���tj|j���}t��}|�|��|�dt
|����dS)Nraz'<StreamReader exception=RuntimeError()>)rrbrr�r�r-r�r�s   r�test___repr__exceptionz"StreamTests.test___repr__exception�sb���%�4�9�5�5�5���n�n�����S�!�!�!����B��f���	'�	'�	'�	'�	'rc��tj|j���}tj|j���|_|�t
|��d��|j�d��|j�|j��d|_|�	dt
|����dS)Nraz,<StreamReader waiter=<Future pending[\S ]*>>r�)
rrbr�Futurer��assertRegexr��
set_resultr*r-res  r�test___repr__waiterzStreamTests.test___repr__waiter�s����%�4�9�5�5�5�� ��T�Y�7�7�7��������L�L�;�	=�	=�	=�	��!�!�$�'�'�'��	�$�$�V�^�4�4�4�������)�4��<�<�8�8�8�8�8rc��tj|j���}tj��|_tj��|j_d|jj_|�dt|����dS)Nraz<Transport>z$<StreamReader transport=<Transport>>)
rrbrrr��
_transport�__repr__�return_valuer-r�res  r�test___repr__transportz"StreamTests.test___repr__transport�sg���%�4�9�5�5�5�� �I�K�K���%)�Y�[�[���"�2?���"�/����?��f���N�N�N�N�Nrc��tjdd��}ttjdz��D]�}|�|���5tjtj||�����}|�t|��t|����|�|j
|j
��|�|j|j��ddd��n#1swxYwY��dS)Nsabcr�r��pickle_protocolr\)rr�r��pickle�HIGHEST_PROTOCOL�subTest�loads�dumpsr-r�r�r��r�e�proto�e2s    r�#test_IncompleteReadError_pickleablez/StreamTests.test_IncompleteReadError_pickleable�s���'���3�3���6�2�Q�6�7�7�	:�	:�E����e��4�4�
:�
:��\�&�,�q�5�"A�"A�"A�B�B��� � ��Q����R���1�1�1�� � ���B�J�7�7�7�� � ���R�[�9�9�9�	
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�
BC/�/C3	�6C3	c��tjdd��}ttjdz��D]�}|�|���5tjtj||�����}|�t|��t|����|�|j
|j
��ddd��n#1swxYwY��dS)Nr�r�rr�r\)rr�r�r�r�r�r�r�r-r��consumedr�s    r�!test_LimitOverrunError_pickleablez-StreamTests.test_LimitOverrunError_pickleable�s���%�i��4�4���6�2�Q�6�7�7�	:�	:�E����e��4�4�
:�
:��\�&�,�q�5�"A�"A�"A�B�B��� � ��Q����R���1�1�1�� � ���R�[�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�
A9C�C	�C	c�4�tj��5}|j�t	j|j���\}}|�d��|���}|j�|��}|�	|d��|�
��}|j�|��}|�|�d����|�
|�����|���|�|�����|j�|�����ddd��dS#1swxYwYdS�Nr&r'r()rr:rr*rr;r<r+r,r-r.r/r0r��
is_closingr1r�rr>�rd�wrr6r7s      r�test_wait_closed_on_closez%StreamTests.test_wait_closed_on_close�s���
�
'�
)�
)�	;�U��Y�1�1��'���7�9�9�F�B��
�H�H�.�/�/�/����
�
�A��9�/�/��2�2�D����T�#9�:�:�:����	�	�A��9�/�/��2�2�D��O�O�D�M�M�*A�B�B�C�C�C����R�]�]�_�_�-�-�-��H�H�J�J�J��O�O�B�M�M�O�O�,�,�,��I�(�(����)9�)9�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;s�E,F
�
F�Fc���tj��5}|j�t	j|j���\}}|�d��|���}|j�|��}|�	|d��|�
��|j�|�����ddd��dS#1swxYwYdS)Nr&r')rr:rr*rr;r<r+r,r-r1rr�s      r�*test_wait_closed_on_close_with_unread_dataz6StreamTests.test_wait_closed_on_close_with_unread_data�s��
�
'�
)�
)�		;�U��Y�1�1��'���7�9�9�F�B��
�H�H�.�/�/�/����
�
�A��9�/�/��2�2�D����T�#9�:�:�:��H�H�J�J�J��I�(�(����)9�)9�:�:�:�		;�		;�		;�		;�		;�		;�		;�		;�		;�		;�		;�		;����		;�		;�		;�		;�		;�		;s�CC)�)C-�0C-c�����fd�}g��j��fd���tj��5}�j�||����ddd��n#1swxYwY���g��dS)Nc���K�tj|j��d{V��\}}|�d��|����d{V��}��|d��|����d{V��}��|�d����|�	��|�
���d{V��dSr�)rr;r<r+r,r-r.r/r0r1r�r>r�r�r7rs    �r�innerz0StreamTests.test_async_writer_api.<locals>.inner�s������"�2�E�M�B�B�B�B�B�B�B�F�B���H�H�.�/�/�/������&�&�&�&�&�&�D����T�#9�:�:�:������?�?�?�?�?�?�D��O�O�D�M�M�*A�B�B�C�C�C��H�H�J�J�J��.�.�"�"�"�"�"�"�"�"�"�"�"rc�.����|��Srrr!s  �rr$z3StreamTests.test_async_writer_api.<locals>.<lambda>�r%r�rr)rr:r*r-�rr�r>r#s`  @r�test_async_writer_apiz!StreamTests.test_async_writer_api�s�����		#�		#�		#�		#�		#����	�'�'�(N�(N�(N�(N�O�O�O�
�
'�
)�
)�	7�U��I�(�(���u���6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	
����2�&�&�&�&�&��$A*�*A.�1A.c�����fd�}g��j��fd���tj��5}�j�||����ddd��n#1swxYwY���g��dS)Nc��>�K�tj|j��d{V��\}}|�d��|����d{V��}��|d��|����d{V��}��|�d����|�	����
t��5|�d��|����d{V��ddd��dS#1swxYwYdS)Nr&r'r(r_)
rr;r<r+r,r-r.r/r0r1rYr�rr�s    �rr�zFStreamTests.test_async_writer_api_exception_after_close.<locals>.innerse�����"�2�E�M�B�B�B�B�B�B�B�F�B���H�H�.�/�/�/������&�&�&�&�&�&�D����T�#9�:�:�:������?�?�?�?�?�?�D��O�O�D�M�M�*A�B�B�C�C�C��H�H�J�J�J��"�"�#7�8�8�
!�
!�����!�!�!��h�h�j�j� � � � � � � �
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!�
!����
!�
!�
!�
!�
!�
!s�0D�D�Dc�.����|��Srrr!s  �rr$zIStreamTests.test_async_writer_api_exception_after_close.<locals>.<lambda>r%rr�r�s`  @r�+test_async_writer_api_exception_after_closez7StreamTests.test_async_writer_api_exception_after_closes�����	!�	!�	!�	!�	!����	�'�'�(N�(N�(N�(N�O�O�O�
�
'�
)�
)�	7�U��I�(�(���u���6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	
����2�&�&�&�&�&r�c�~��g�|j��fd���tj��5}|j�tj|j���\}}|���|�	��}|j�|��|�
|�����|���}|j�|��}|�
|d��ddd��n#1swxYwY|�
�g��dS)Nc�.����|��Srrr!s  �rr$z?StreamTests.test_eof_feed_when_closing_writer.<locals>.<lambda>r%rr)rr)rr:r*rr;r<r1rr/r�r.r-)rr>r�r�r6r7r#s      @r�!test_eof_feed_when_closing_writerz-StreamTests.test_eof_feed_when_closing_writersU������	�'�'�(N�(N�(N�(N�O�O�O�
�
'�
)�
)�
	(�U��Y�1�1��+�U�]�;�=�=�F�B��
�H�H�J�J�J���� � �A��I�(�(��+�+�+��O�O�B�I�I�K�K�(�(�(����	�	�A��9�/�/��2�2�D����T�3�'�'�'�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(�
	(����
	(�
	(�
	(�
	(�	
����2�&�&�&�&�&s�CD�D �#D c�����fd�}g��j��fd���tj��5}�j�||����ddd��n#1swxYwY���g��dS)Nc���K�tj|j��d{V��\}}|�d��|����d{V��}��|d��|����d{V��}��|�d������	t��5}~tj����t|j��d����t|jdj���d����ddd��dS#1swxYwYdS)Nr&r'r(rrzunclosed <StreamWriter)rr;r<r+r,r-r.r/r0�assertWarns�ResourceWarning�gc�collectr��warningsr�r��
startswith�r>r�r�r7r�rs     �rr�z:StreamTests.test_unclosed_resource_warnings.<locals>.inner/s������"�2�E�M�B�B�B�B�B�B�B�F�B���H�H�.�/�/�/������&�&�&�&�&�&�D����T�#9�:�:�:������?�?�?�?�?�?�D��O�O�D�M�M�*A�B�B�C�C�C��!�!�/�2�2�
b�b���
����� � ��R�[�!1�!1�1�5�5�5�����B�K��N�$:� ;� ;� F� F�G_� `� `�a�a�a�	
b�
b�
b�
b�
b�
b�
b�
b�
b�
b�
b�
b����
b�
b�
b�
b�
b�
bs�BE�E�Ec�.����|��Srrr!s  �rr$z=StreamTests.test_unclosed_resource_warnings.<locals>.<lambda>>r%rr�r�s`  @r�test_unclosed_resource_warningsz+StreamTests.test_unclosed_resource_warnings.s�����	b�	b�	b�	b�	b����	�'�'�(N�(N�(N�(N�O�O�O�
�
'�
)�
)�	7�U��I�(�(���u���6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	
����2�&�&�&�&�&r�c�����fd�}g��j��fd���tj��5}��t
��5�j�||����ddd��n#1swxYwYtj��ddd��n#1swxYwY��	�g��dS)Nc���K�tj|j��d{V��\}}|�d��|����d{V��}��|d��|����d{V��}��|�d�����j	�
��|����j	���s3tj
d���d{V���j	����3��t��5}~t!j����t%|j��d����dt)|jdj����ddd��dS#1swxYwYdS)Nr&r'r(grzloop is closedr)rr;r<r+r,r-r.r/r0rr"r1�	is_closed�sleepr�r�r�r�r�r�r�r�r�s     �rr�z@StreamTests.test_loop_is_closed_resource_warnings.<locals>.innerFs������"�2�E�M�B�B�B�B�B�B�B�F�B���H�H�.�/�/�/������&�&�&�&�&�&�D����T�#9�:�:�:������?�?�?�?�?�?�D��O�O�D�M�M�*A�B�B�C�C�C�
�I�N�N�����H�H�J�J�J��i�)�)�+�+�
)��m�C�(�(�(�(�(�(�(�(�(��i�)�)�+�+�
)��!�!�/�2�2�
P�b���
����� � ��R�[�!1�!1�1�5�5�5�� � �!1�3�r�{�1�~�7M�3N�3N�O�O�O�	
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P����
P�
P�
P�
P�
P�
Ps�:A0F7�7F;�>F;c�.����|��Srrr!s  �rr$zCStreamTests.test_loop_is_closed_resource_warnings.<locals>.<lambda>\r%r)
rr)rr:rYr�r*r�r�r-r�s`  @r�%test_loop_is_closed_resource_warningsz1StreamTests.test_loop_is_closed_resource_warningsEs\����	P�	P�	P�	P�	P�*���	�'�'�(N�(N�(N�(N�O�O�O�
�
'�
)�
)�	�U��"�"�<�0�0�
;�
;��	�,�,�U�U�5�\�\�:�:�:�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;�
;����
;�
;�
;�
;�
�J�L�L�L�		�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
����2�&�&�&�&�&s5�B/�$B�9B/�B		�	B/�B		�
B/�/B3�6B3c�������tj���g�|j��fd����fd�����fd�}|j�|�����S)Nc�.����|��Srrr!s  �rr$z<StreamTests._basetest_unhandled_exceptions.<locals>.<lambda>jr%rc���K�tjd����d{V��\}}|�d��|����d{V��|���|����d{V��dS)Nr�stest msg)rr;r+rr1r)r�r�rs  �rr-z:StreamTests._basetest_unhandled_exceptions.<locals>.clientls������"�2�;��E�E�E�E�E�E�E�E�F�B���H�H�[�!�!�!��(�(�*�*���������H�H�J�J�J��.�.�"�"�"�"�"�"�"�"�"�"�"rc����K�tj�d����d{V��}|����d{V������d{V��|���|����d{V��dS)Nr�)rr�
start_servingr1r)r�r-�handle_echors ���rr�z8StreamTests._basetest_unhandled_exceptions.<locals>.mainss������"�/��[�$�0�0�0�0�0�0�0�0�F��&�&�(�(�(�(�(�(�(�(�(��&�(�(�N�N�N�N�N�N�N��L�L�N�N�N��$�$�&�&�&�&�&�&�&�&�&�&�&r)r�find_unused_portrr)r*)rr
r�r-r#rs ` @@@r�_basetest_unhandled_exceptionsz*StreamTests._basetest_unhandled_exceptionsfs��������-�/�/�����	�'�'�(N�(N�(N�(N�O�O�O�	#�	#�	#�	#�	#�	'�	'�	'�	'�	'�	'�	'�	
�	�$�$�T�T�V�V�,�,�,��rc�z�d�}|�|��}|�|ddd��dS)Nc��$K�td���)Nrz)�	Exception�r4r5s  rr
z9StreamTests.test_unhandled_exception.<locals>.handle_echos�����F�#�#�#rrr�z*Unhandled exception in client_connected_cb�rr-�rr
r#s   r�test_unhandled_exceptionz$StreamTests.test_unhandled_exception~sY��	$�	$�	$��6�6�{�C�C������!��Y�/�@�	B�	B�	B�	B�	Brc�b�d�}|�|��}|�|g��dS)Nc��TK�tj�����dSr)r�current_taskr�rs  rr
z6StreamTests.test_unhandled_cancel.<locals>.handle_echo�s'����� �"�"�)�)�+�+�+�+�+rrrs   r�test_unhandled_cancelz!StreamTests.test_unhandled_cancel�s@��	,�	,�	,��6�6�{�C�C������2�&�&�&�&�&r)Vr%r&r'rjrrr8r@r�skip_unless_bind_unix_socketrErI�unittest�skipIfrMrOrSrZr\r^rgrkrnrxr|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�r�r�r0r@rWrb�platformrtrwr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�
__classcell__)rs@rrrsv�������#�D�'�'�'�'�'�
�����'�'�'�5�5�5�
�/�5�5�0�/�5�

'�
'�
'��X�_�S�D�[�/�2�2�A�A�3�2�A��/��X�_�S�D�[�/�2�2�A�A�3�2�0�/�A�
'�
'�
'�;�;�;�
�/�;�;�0�/�;�
.�.�.�4�4�4�4�4�4�.�.�.�	3�	3�	3�.�.�.�.�.�.� 	F�	F�	F�;�;�;�.�.�.�5�5�5�".�.�.�6
)�
)�
)�-.�-.�-.�^
<�
<�
<�-�-�-�$�$�$�	4�	4�	4�
.�
.�
.�J�J�J�
1�1�1�$!.�!.�!.�F.�.�.�:�:�:� 4�4�4�4�4�4�".�.�.�.�.�.�&	M�	M�	M�/�/�/�1�1�1�
,�
,�
,�D'�D'�D'�L�/�C'�C'�0�/�C'�J�X�_�S�D�[�/�2�2�<4�<4�3�2�<4�|�X�_�S�\�W�,�.@�A�A�%(�%(�B�A�%(�N#�#�#�/�/�/�/�/�/�1�1�1�
1�1�1�1�1�1�-�-�-�&)'�)'�)'�V9�9�9�C�C�C�=�=�=�
A�A�A�
'�'�'�	9�	9�	9�O�O�O�:�:�:�:�:�:�;�;�;�"
;�
;�
;�'�'�'�('�'�'�,'�'�'�&'�'�'�.'�'�'�B���0B�B�B�'�'�'�'�'�'�'rr�__main__)�__doc__r�r`r�r�rrbr�rr�test.supportrrM�ImportErrorr�test.test_asynciorrr
�TestCaserr%r�r
rr�<module>r#s6����	�	�	�	�	�	�	�	�����
�
�
�
�
�
�
�
�
�
�
�
���������������&�&�&�&�&�&���J�J�J�J������
�C�C�C���������1�1�1�1�1�1�(�(�(�o'�o'�o'�o'�o'�*�%�o'�o'�o'�d#�z����H�M�O�O�O�O�O��s�5�?�?