Your IP : 216.73.216.147


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_asynchat.cpython-39.opt-2.pyc

a

XC?h�$�@sddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZej
Z
dZGdd�de	j�ZGdd�dej�Zd	d
�ZGdd�dej�ZGd
d�de�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zedkr�e��dS)�)�support)�
socket_helperNsQUIT
c@s eZdZdZdd�Zdd�ZdS)�echo_server�cCs<tj�|�||_t�tjtj�|_t�	|j�|_
d|_dS�N)�	threading�Thread�__init__�event�socket�AF_INET�SOCK_STREAM�sockrZ	bind_port�port�start_resend_event)�selfr
�r�7/opt/alt/python39/lib64/python3.9/test/test_asynchat.pyr	s
zecho_server.__init__cCs�|j��|j��|j��\}}d|_t|jvrP|�d�}|sBqP|j||_q(|j�td�|_|j	rp|j	�
�z<|jr�|�|jd|j��}t
�d�|j|d�|_qrWnYn0|��|j��dS)N�rg����MbP?)rZlistenr
�setZaccept�buffer�SERVER_QUIT�recv�replacer�wait�send�
chunk_size�time�sleep�close)rZconn�client�data�nrrr�run"s*





zecho_server.runN)�__name__�
__module__�__qualname__rr	r#rrrrrs	rc@s>eZdZdd�Zdd�Zejdkr*dd�Zdd	�Zd
d�Z	dS)
�echo_clientcCsDtj�|�g|_|�tjtj�|�t	|f�|�
|�d|_dS�Nr)�asynchat�
async_chatr	�contentsZ
create_socketrrr
Zconnect�HOST�set_terminatorr)r�
terminatorZserver_portrrrr	Ds
zecho_client.__init__cCsdSrr�rrrr�handle_connectLszecho_client.handle_connect�darwincCsdSrrr/rrr�handle_exptRszecho_client.handle_exptcCs|j|7_dSr)r)rr!rrr�collect_incoming_dataUsz!echo_client.collect_incoming_datacCs|j�|j�d|_dSr()r+�appendrr/rrr�found_terminatorXszecho_client.found_terminatorN)
r$r%r&r	r0�sys�platformr2r3r5rrrrr'Bs
r'cCs:t��}t|�}|��|��|��t�d�||fS)N�{�G�z�?)r�Eventr�startr�clearrr)r
�srrr�start_echo_server\s
r=c@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd S)!�TestAsynchatFcCst��|_dSr)rZthreading_setup�_threadsr/rrr�setUpiszTestAsynchat.setUpcCstj|j�dSr)rZthreading_cleanupr?r/rrr�tearDownlszTestAsynchat.tearDowncCs�t��}t|�}||_|��|��|��t�d�t	||j
�}|�d�|�d|�|�d|�|�t�t
j|jddd�t�|�|�|jddg�dS)Nr8shello sworld�I'm not dead yet!�,�Zuse_poll�countZtimeout�hello world)rr9rrr:rr;rrr'r�pushr�asyncore�loop�usepollr�join_thread�assertEqualr+)rZtermZserver_chunkr
r<�crrr�line_terminator_checkos



z"TestAsynchat.line_terminator_checkcCsdD]}|�d|�qdS)N�r���
�rN�r�lrrr�test_line_terminator1�sz"TestAsynchat.test_line_terminator1cCsdD]}|�d|�qdS)NrOs
rSrTrrr�test_line_terminator2�sz"TestAsynchat.test_line_terminator2cCsdD]}|�d|�qdS)NrOsqqqrSrTrrr�test_line_terminator3�sz"TestAsynchat.test_line_terminator3cCsft�\}}t||j�}d}|�|�|�t�tj|jddd�t�	|�|�
|j|d|�g�dS�Nshello world, I'm not dead yet!
rCr8rD�r=r'rrGrrHrIrJrrKrLr+)rZtermlenr<r
rMr!rrr�numeric_terminator_check�s



z%TestAsynchat.numeric_terminator_checkcCs|�d�dS)Nr�r[r/rrr�test_numeric_terminator1�sz%TestAsynchat.test_numeric_terminator1cCs|�d�dS)N�r\r/rrr�test_numeric_terminator2�sz%TestAsynchat.test_numeric_terminator2cCsjt�\}}td|j�}d}|�|�|�t�tj|jddd�t�	|�|�
|jg�|�
|j|�dSrY)
r=r'rrGrrHrIrJrrKrLr+r�rr<r
rMr!rrr�test_none_terminator�s



z!TestAsynchat.test_none_terminatorcCsht�\}}td|j�}d}tj|tdd�}|�|�tj|j	ddd�t
�|�|�|j
dd	g�dS)
NrR�hello world
I'm not dead yet!
�)Zbuffer_sizerCr8rDrFrB)r=r'rr)Zsimple_producerr�push_with_producerrHrIrJrrKrLr+)rr<r
rMr!�prrr�test_simple_producer�s


z!TestAsynchat.test_simple_producercCsZt�\}}td|j�}d}|�|t�tj|jddd�t�	|�|�
|jddg�dS)NrRrbrCr8rDrFrB)r=r'rrdrrHrIrJrrKrLr+r`rrr�test_string_producer�s

z!TestAsynchat.test_string_producercCs\t�\}}td|j�}|�d�|�t�tj|jddd�t�	|�|�
|jgd��dS)NrRshello world

I'm not dead yet!
rCr8rD)rFrrBrZ�rr<r
rMrrr�test_empty_line�s



�zTestAsynchat.test_empty_linecCs�t�\}}t��|_td|j�}|�d�|�t�|��t	j
|jddd�|j��t
�|�|�|jg�|�t|j�d�dS)NrRrbrCr8rDr)r=rr9rr'rrGrZclose_when_donerHrIrJrrrKrLr+Z
assertGreater�lenrrhrrr�test_close_when_done�s





z!TestAsynchat.test_close_when_donecCs�t�\}}td|j�}d}|�|�|�t|��|�t|��|�t|jd�|�t|jd�|�t�t	j
|jddd�t�
|�|�|jgd��dS)	NrRsbytes
�
ZunicoderCr8rD)�bytesrmrm)r=r'rrG�	bytearray�
memoryview�assertRaises�	TypeErrorrrHrIrJrrKrLr+r`rrr�	test_push�s



zTestAsynchat.test_pushN)r$r%r&rJr@rArNrVrWrXr[r]r_rarfrgrirkrrrrrrr>fs 

r>c@seZdZdZdS)�TestAsynchat_WithPollTN)r$r%r&rJrrrrrs�srsc@seZdZdd�ZdS)�TestAsynchatMockedcCs~tj��}ttj�|j_t�	�}|�
|�|�|j�tjj
�|d��}|��Wd�n1sd0Y|�|j�dS)NZhandle_error)�unittestZmockZMock�BlockingIOError�errnoZEAGAINrZside_effectr)r*Z
set_socketZ
addCleanupZdel_channelZpatch�objectZhandle_readZassertFalseZcalled)rr�
dispatcher�errorrrr�test_blockingioerrors

&z'TestAsynchatMocked.test_blockingioerrorN)r$r%r&r{rrrrrtsrtc@seZdZdd�ZdS)�TestHelperFunctionscCs,|�t�dd�d�|�t�dd�d�dS)Nzqwerty
z
rZ
qwertydkjfr)rLr)Zfind_prefix_at_endr/rrr�test_find_prefix_at_endsz+TestHelperFunctions.test_find_prefix_at_endN)r$r%r&r}rrrrr|sr|c@seZdZdd�ZdS)�TestNotConnectedcCst��}|�t|jd�dS)N���)r)r*rp�
ValueErrorr-)rr rrr�!test_disallow_negative_terminatorsz2TestNotConnected.test_disallow_negative_terminatorN)r$r%r&r�rrrrr~sr~�__main__)�testrZtest.supportrr)rHrwrr6rrruZ
unittest.mockr,rrrr*r'r=ZTestCaser>rsrtr|r~r$�mainrrrr�<module>s..