Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_asynchat.cpython-311.opt-1.pyc
�

�Ke�%���ddlmZddlmZddlmZddlmZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZej
d��Zej
d��Zejd�	��ejZd
ZGd�de	j��ZGd
�dej��Zd�ZGd�dej��ZGd�de��ZGd�dej��ZGd�dej��ZGd�dej��Zedkrej��dSdS)�)�support)�
socket_helper)�threading_helper)�warnings_helperN�asynchat�asyncoreT)�modulesQUIT
c��eZdZdZd�Zd�ZdS)�echo_server�c��tj�|��||_t	jtjtj��|_tj	|j��|_
d|_dS�N)�	threading�Thread�__init__�event�socket�AF_INET�SOCK_STREAM�sockr�	bind_port�port�start_resend_event)�selfrs  �</usr/local/apps/python3/lib/python3.11/test/test_asynchat.pyrzecho_server.__init__s\����!�!�$�'�'�'���
��M�&�.�&�2D�E�E��	�!�+�D�I�6�6��	�#'�����c���|j���|j���|j���\}}d|_t|jvr5|�d��}|sn|j|z|_t|jv�5|j�td��|_|j	r|j	�
��	|jrV|�|jd|j���}tjd��|j|d�|_|j�Vn#YnxYw|���|j���dS)Nrrg����MbP?)r�listenr�set�accept�buffer�SERVER_QUIT�recv�replacer�wait�send�
chunk_size�time�sleep�close)r�conn�client�data�ns     r�runzecho_server.run(sW���	�������
�������y�'�'�)�)���f�������,�,��9�9�Q�<�<�D��
���+��,�D�K�	���,�,��k�)�)�+�s�;�;����"�	+��#�(�(�*�*�*�	��+�
.��I�I�d�k�*:�4�?�*:�;�<�<���
�5�!�!�!�"�k�!�"�"�o����+�
.���	��D�����
�
�����	�������s
�AD=�=EN)�__name__�
__module__�__qualname__r'rr/�rrrrs9�������J�'�'�'�����rrc�B�eZdZd�Zd�Zejdkrd�Zd�Zd�Z	dS)�echo_clientc��tj�|��g|_|�t
jt
j��|�t|f��|�
|��d|_dS�Nr)r�
async_chatr�contents�
create_socketrrr�connect�HOST�set_terminatorr!)r�
terminator�server_ports   rrzecho_client.__init__Jsq����$�$�T�*�*�*���
����6�>�6�+=�>�>�>����d�K�(�)�)�)����J�'�'�'�����rc��dSrr3�rs r�handle_connectzecho_client.handle_connectRs���r�darwinc��dSrr3rAs r�handle_exptzecho_client.handle_exptXs���Drc�&�|xj|z
c_dSr)r!)rr-s  r�collect_incoming_dataz!echo_client.collect_incoming_data[s�����t�����rc�R�|j�|j��d|_dSr7)r9�appendr!rAs r�found_terminatorzecho_client.found_terminator^s%���
���T�[�)�)�)�����rN)
r0r1r2rrB�sys�platformrErGrJr3rrr5r5Hsn���������
�
�
��|�x���	�	�	��������rr5c���tj��}t|��}|���|���|���t
jd��||fS)N�{�G�z�?)r�Eventr�startr%�clearr(r))r�ss  r�start_echo_serverrSbs\���O���E��E���A��G�G�I�I�I�	�J�J�L�L�L�	�K�K�M�M�M��J�t�����e�8�Orc�l�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�TestAsynchatFc�6�tj��|_dSr)r�threading_setup�_threadsrAs r�setUpzTestAsynchat.setUpos��(�8�:�:��
�
�
rc�,�tj|j�dSr)r�threading_cleanuprXrAs r�tearDownzTestAsynchat.tearDownrs���*�D�M�:�:�:�:rc��tj��}t|��}||_|���|���|���tjd��t||j
��}|�d��|�d|z��|�d|z��|�t��t�|jdd���t!j|��|�|jddg��dS)NrNshello sworld�I'm not dead yet!�,��use_poll�count�timeout�hello world)rrOrr'rPr%rQr(r)r5r�pushr"r�loop�usepollr�join_thread�assertEqualr9)r�term�server_chunkrrR�cs      r�line_terminator_checkz"TestAsynchat.line_terminator_checkus����!�!�������#���	���	�	�	�
�
�
����
���
�
�
��
�4������a�f�%�%��	���y����	���x�$�����	���#�d�*�+�+�+�	���{�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������n�6J�%K�L�L�L�L�Lrc�<�dD]}|�d|���dS)N�r���
�rm�r�ls  r�test_line_terminator1z"TestAsynchat.test_line_terminator1�s4���	1�	1�A��&�&�u�a�0�0�0�0�	1�	1rc�<�dD]}|�d|���dS)Nros
rsrts  r�test_line_terminator2z"TestAsynchat.test_line_terminator2�s4���	3�	3�A��&�&�w��2�2�2�2�	3�	3rc�<�dD]}|�d|���dS)Nrosqqqrsrts  r�test_line_terminator3z"TestAsynchat.test_line_terminator3�s4���	2�	2�A��&�&�v�q�1�1�1�1�	2�	2rc�h�t��\}}t||j��}d}|�|��|�t��t
�|jdd���tj	|��|�
|j|d|�g��dS�Nshello world, I'm not dead yet!
r_rNr`�rSr5rrer"rrfrgrrhrir9)r�termlenrRrrlr-s      r�numeric_terminator_checkz%TestAsynchat.numeric_terminator_check�s���$�&�&���5�����(�(��2��	���t����	���{�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������d�8�G�8�n�%5�6�6�6�6�6rc�0�|�d��dS)Nr�rrAs r�test_numeric_terminator1z%TestAsynchat.test_numeric_terminator1�s��	
�%�%�a�(�(�(�(�(rc�0�|�d��dS)N�r�rAs r�test_numeric_terminator2z%TestAsynchat.test_numeric_terminator2�s���%�%�a�(�(�(�(�(rc��t��\}}td|j��}d}|�|��|�t��t
�|jdd���tj	|��|�
|jg��|�
|j|��dSr|)
rSr5rrer"rrfrgrrhrir9r!�rrRrrlr-s     r�test_none_terminatorz!TestAsynchat.test_none_terminator�s���$�&�&���5���a�f�%�%��2��	���t����	���{�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������R�(�(�(������4�(�(�(�(�(rc�n�t��\}}td|j��}d}t�|t
zd���}|�|��t�|j	dd���tj|��|�|j
dd	g��dS)
Nrr�hello world
I'm not dead yet!
�)�buffer_sizer_rNr`rdr^)rSr5rr�simple_producerr"�push_with_producerrrfrgrrhrir9)rrRrrlr-�ps      r�test_simple_producerz!TestAsynchat.test_simple_producer�s���$�&�&���5���q�v�&�&��2���$�$�T�+�%5�1�$�E�E��	���Q�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������n�6J�%K�L�L�L�L�Lrc�6�t��\}}td|j��}d}|�|tz��t
�|jdd���tj	|��|�
|jddg��dS)Nrrr�r_rNr`rdr^)rSr5rr�r"rrfrgrrhrir9r�s     r�test_string_producerz!TestAsynchat.test_string_producer�s���$�&�&���5���q�v�&�&��2��	���T�+�-�.�.�.��
�
�t�|�3��
�D�D�D��$�Q�'�'�'������n�6J�%K�L�L�L�L�Lrc�V�t��\}}td|j��}|�d��|�t��t
�|jdd���tj	|��|�
|jgd���dS)Nrrshello world

I'm not dead yet!
r_rNr`)rdrr^r}�rrRrrls    r�test_empty_linezTestAsynchat.test_empty_line�s���$�&�&���5���q�v�&�&��	���4�5�5�5�	���{�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������D�D�D�	F�	F�	F�	F�	Frc�,�t��\}}tj��|_t	d|j��}|�d��|�t��|���t�
|jdd���|j���tj|��|�|jg��|�t%|j��d��dS)Nrrr�r_rNr`r)rSrrOrr5rrer"�close_when_donerrfrgrrrhrir9�
assertGreater�lenr!r�s    r�test_close_when_donez!TestAsynchat.test_close_when_done�s���$�&�&���5�(��0�0�����q�v�&�&��	���2�3�3�3�	���{����	�������
�
�t�|�3��
�D�D�D�	
�� � �"�"�"��$�Q�'�'�'������R�(�(�(�	
���3�q�x�=�=�!�,�,�,�,�,rc�f�t��\}}td|j��}d}|�|��|�t	|����|�t|����|�t|jd��|�t|jd��|�t��t�
|jdd���tj
|��|�|jgd���dS)	Nrrsbytes
�
�unicoder_rNr`)�bytesr�r�)rSr5rre�	bytearray�
memoryview�assertRaises�	TypeErrorr"rrfrgrrhrir9r�s     r�	test_pushzTestAsynchat.test_push�s��%�&�&���5���q�v�&�&����	���t����	���y�������	���z�$��� � � ����)�Q�V�R�0�0�0����)�Q�V�Y�7�7�7�	���{�����
�
�t�|�3��
�D�D�D��$�Q�'�'�'������%C�%C�%C�D�D�D�D�DrN)r0r1r2rgrYr\rmrvrxrzrr�r�r�r�r�r�r�r�r3rrrUrUls�������G�;�;�;�;�;�;�M�M�M�,1�1�1�
3�3�3�
2�2�2�

7�
7�
7�)�)�)�
)�)�)�)�)�)�	M�	M�	M�M�M�M�
F�
F�
F�-�-�-�,E�E�E�E�ErrUc��eZdZdZdS)�TestAsynchat_WithPollTN)r0r1r2rgr3rrr�r�s�������G�G�Grr�c��eZdZd�ZdS)�TestAsynchatMockedc���tj���}ttj��|j_t�	��}|�
|��|�|j��tjj
�|d��5}|���ddd��n#1swxYwY|�|j��dS)N�handle_error)�unittest�mock�Mock�BlockingIOError�errno�EAGAINr#�side_effectrr8�
set_socket�
addCleanup�del_channel�patch�object�handle_read�assertFalse�called)rr�
dispatcher�errors    r�test_blockingioerrorz'TestAsynchatMocked.test_blockingioerrors����}�!�!�#�#�� /��� =� =��	���(�(�*�*�
����d�#�#�#����
�.�/�/�/�
�]�
 �
'�
'�
�N�
C�
C�	%�u��"�"�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%������&�&�&�&�&s�/C�C�CN)r0r1r2r�r3rrr�r�s#������'�'�'�'�'rr�c��eZdZd�ZdS)�TestHelperFunctionsc���|�t�dd��d��|�t�dd��d��dS)Nzqwerty
z
r�
qwertydkjfr)rir�find_prefix_at_endrAs r�test_find_prefix_at_endz+TestHelperFunctions.test_find_prefix_at_endsT������4�4�Z��H�H�!�L�L�L�����4�4�\�6�J�J�A�N�N�N�N�NrN)r0r1r2r�r3rrr�r�s(������O�O�O�O�Orr�c��eZdZd�ZdS)�TestNotConnectedc�z�t���}|�t|jd��dS)N���)rr8r��
ValueErrorr=)rr,s  r�!test_disallow_negative_terminatorz2TestNotConnected.test_disallow_negative_terminators4���$�$�&�&�����*�f�&;�R�@�@�@�@�@rN)r0r1r2r�r3rrr�r�s(������A�A�A�A�Arr��__main__) �testr�test.supportrrrr�rrKrr(r��
unittest.mock�import_deprecatedrr�requires_working_socketr<r"rrr8r5rS�TestCaserUr�r�r�r�r0�mainr3rr�<module>r�sl��������&�&�&�&�&�&�)�)�)�)�)�)�(�(�(�(�(�(�����
�
�
�
�
�
�
�
�����������������-�?�,�Z�8�8��,�?�,�Z�8�8�����t�,�,�,�,������,�,�,�,�,�)�"�,�,�,�\�����(�%����4���TE�TE�TE�TE�TE�8�$�TE�TE�TE�n�����L����'�'�'�'�'��*�'�'�'�O�O�O�O�O�(�+�O�O�O�A�A�A�A�A�x�(�A�A�A��z����H�M�O�O�O�O�O��r