Your IP : 216.73.216.52


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_socketserver.cpython-35.pyc



��Yf�)�
@sdZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Zddl
mZm
Z
mZyddlZWnek
r�dZYnXejjd�dZejjZeed�Zejed�Zeed�Zejed	�Zd
d�ZejZdd
d�Zer�Gdd�de	je	j�Z Gdd�de	je	j!�Z"ej#dd��Z$ejed�Gdd�dej%��Z&Gdd�dej%�Z'e(dkrej)�dS)z
Test suite for socketserver.
�N)�
reap_children�reap_threads�verboseZnetworkshello world
�AF_UNIXzrequires Unix sockets�forkzrequires forkingcCs ttd�rtj|�dS)z7Call signal.alarm when it exists (i.e. not on Windows).�alarmN)�hasattr�signalr)�n�r�;/opt/alt/python35/lib64/python3.5/test/test_socketserver.py�signal_alarm"sr
�cCsQt|ggg|�\}}}||kr:|j|�Std|f��dS)Nztimed out on %r)�_real_selectZrecv�RuntimeError)Zsockr
Ztimeout�r�w�xrrr�receive*s!
rc@seZdZdS)�ForkingUnixStreamServerN)�__name__�
__module__�__qualname__rrrrr2src@seZdZdS)�ForkingUnixDatagramServerN)rrrrrrrr6srccsftj�}|dkr%tjd�dVtj|d�\}}|j||�|jd|�dS)Nr�H�iH)�osr�_exit�waitpid�assertEqual)Ztestcase�pidZpid2Zstatusrrr�simple_subprocess;s
r!z!Threading required for this test.c@sZeZdZdZdd�Zdd�Zdd�Zdd	�Zed
d��Z	dd
�Z
dd�Zdd�Zdd�Z
edd��Zedd��Zedd��Zeedd���Zdd�Zdd�Zed d!��Zed"d#��Zed$d%��Zeed&d'���Zed(d)��Zd*d+�Zd,S)-�SocketServerTestzTest all socket servers.cCs td�d|_g|_dS)N�<r)r
Z	port_seed�
test_files)�selfrrr�setUpKs
	zSocketServerTest.setUpcCsbtd�t�x7|jD],}ytj|�Wqtk
rFYqXqWg|jdd�<dS)Nr)r
rr$r�remove�OSError)r%�fnrrr�tearDownPs

	zSocketServerTest.tearDowncCsO|tjkrtdfSd}tjddd|�}|jj|�|SdS)Nr�prefixzunix_socket.�dir)�socketZAF_INET�HOST�tempfileZmktempr$�append)r%�protor,r)rrr�pickaddr[s
zSocketServerTest.pickaddrcCskGdd�d|�}Gdd�d|�}tr<td�|||�}|j|j|jj��|S)Nc@seZdZdd�ZdS)z.SocketServerTest.make_server.<locals>.MyServercSs|j|�|j��dS)N)Z
close_request�server_close)r%�request�client_addressrrr�handle_errorhs

z;SocketServerTest.make_server.<locals>.MyServer.handle_errorN)rrrr6rrrr�MyServergsr7c@seZdZdd�ZdS)z/SocketServerTest.make_server.<locals>.MyHandlercSs#|jj�}|jj|�dS)N)Zrfile�readlineZwfile�write)r%�linerrr�handlensz6SocketServerTest.make_server.<locals>.MyHandler.handleN)rrrr;rrrr�	MyHandlermsr<zcreating server)r�printr�server_addressr-Zgetsockname)r%�addr�svrcls�hdlrbaser7r<�serverrrr�make_serverfs
zSocketServerTest.make_servercCs-|j|j|j�||�}|j}trJtd|�td|�tjdd|d|jdddi�}d	|_	|j
�tr�td
�x7td�D])}tr�td|�||j|�q�Wtr�td
�|j�|j
�|j�|jd|jj��tr)td�dS)NzADDR =zCLASS =�namez
%s serving�target�kwargs�
poll_intervalg{�G�z�?Tzserver running�ztest clientzwaiting for server��done���)rCr2�address_familyr>rr=�	threading�Thread�
serve_forever�daemon�start�range�shutdown�joinr3rr-�fileno)r%r@rAZtestfuncrBr?�t�irrr�
run_serverws4	

	
		






zSocketServerTest.run_servercCs�tj|tj�}|j|�|jt�t|d�}}x/|rsd|krst|d�}||7}qEW|j|t�|j�dS)N�ds
)r-�SOCK_STREAM�connectZsendall�TEST_STRrr�close)r%r1r?�s�buf�datarrr�stream_examine�s

zSocketServerTest.stream_examinecCs�tj|tj�}tr@|tjkr@|j|j|��|jt|�t|d�}}x/|r�d|kr�t|d�}||7}qfW|j	|t�|j
�dS)NrYs
)r-Z
SOCK_DGRAM�HAVE_UNIX_SOCKETSrZbindr2Zsendtor\rrr])r%r1r?r^r_r`rrr�
dgram_examine�szSocketServerTest.dgram_examinecCs |jtjtj|j�dS)N)rX�socketserver�	TCPServer�StreamRequestHandlerra)r%rrr�test_TCPServer�szSocketServerTest.test_TCPServercCs |jtjtj|j�dS)N)rXrdZThreadingTCPServerrfra)r%rrr�test_ThreadingTCPServer�sz(SocketServerTest.test_ThreadingTCPServercCs4t|��!|jtjtj|j�WdQRXdS)N)r!rXrdZForkingTCPServerrfra)r%rrr�test_ForkingTCPServer�s
z&SocketServerTest.test_ForkingTCPServercCs |jtjtj|j�dS)N)rXrd�UnixStreamServerrfra)r%rrr�test_UnixStreamServer�sz&SocketServerTest.test_UnixStreamServercCs |jtjtj|j�dS)N)rXrdZThreadingUnixStreamServerrfra)r%rrr�test_ThreadingUnixStreamServer�sz/SocketServerTest.test_ThreadingUnixStreamServercCs1t|��|jttj|j�WdQRXdS)N)r!rXrrdrfra)r%rrr�test_ForkingUnixStreamServer�s
	z-SocketServerTest.test_ForkingUnixStreamServercCs |jtjtj|j�dS)N)rXrdZ	UDPServer�DatagramRequestHandlerrc)r%rrr�test_UDPServer�szSocketServerTest.test_UDPServercCs |jtjtj|j�dS)N)rXrdZThreadingUDPServerrnrc)r%rrr�test_ThreadingUDPServer�sz(SocketServerTest.test_ThreadingUDPServercCs4t|��!|jtjtj|j�WdQRXdS)N)r!rXrdZForkingUDPServerrnrc)r%rrr�test_ForkingUDPServer�s
z&SocketServerTest.test_ForkingUDPServercCs |jtjtj|j�dS)N)rXrd�UnixDatagramServerrnrc)r%rrr�test_UnixDatagramServer�sz(SocketServerTest.test_UnixDatagramServercCs |jtjtj|j�dS)N)rXrdZThreadingUnixDatagramServerrnrc)r%rrr� test_ThreadingUnixDatagramServer�sz1SocketServerTest.test_ThreadingUnixDatagramServercCs|jttj|j�dS)N)rXrrdrnrc)r%rrr�test_ForkingUnixDatagramServer�s	z/SocketServerTest.test_ForkingUnixDatagramServerc	CsGdd�dtj�}Gdd�dtj�}g}xltd�D]^}|tdf|�}tjddd	|jd
ddi�}d
|_|j	||f�qEWx(|D] \}}|j
�|j�q�Wx(|D] \}}|j�|j
�q�WdS)Nc@seZdZdS)z0SocketServerTest.test_shutdown.<locals>.MyServerN)rrrrrrrr7�sr7c@seZdZdS)z1SocketServerTest.test_shutdown.<locals>.MyHandlerN)rrrrrrrr<�sr<rrrDzMyServer servingrErFrGg{�G�z�?T)rdrerfrRr.rMrNrOrPr0rQrSrTr3)r%r7r<ZthreadsrWr^rVrrr�
test_shutdown�s"			

zSocketServerTest.test_shutdowncCsKxDtd�D]6}|jt��tjtdftj�WdQRXq
WdS)NirIrK)rRZassertRaises�
OverflowErrorrdrer.rf)r%rWrrr�test_tcpserver_bind_leaksz)SocketServerTest.test_tcpserver_bind_leakN)rrr�__doc__r&r*r2rCrrXrarcrgrh�requires_forkingri�requires_unix_socketsrkrlrmrorprqrsrtrurvrxrrrrr"Gs0r"c@s(eZdZdd�Zdd�ZdS)�MiscTestCasecCswg}xWtt�D]I}|jd�stt|�}t|dd�dkr|j|�qW|jtj|�dS)N�_rrd)r,rd�
startswith�getattrr0ZassertCountEqual�__all__)r%ZexpectedrDZ
mod_objectrrr�test_allszMiscTestCase.test_allcCs�Gdd�dtj�}|tdftj�}tj|jtj�}|j|j�|j	�|j
�|j|jd�|j
�dS)Nc@s.eZdZdd�ZdZdd�ZdS)zSMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServercSsdS)NFr)r%r4r5rrr�verify_request,szbMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.verify_requestrcSs&|jd7_tjj||�dS)NrI)�shutdown_calledrdre�shutdown_request)r%r4rrrr�0szdMiscTestCase.test_shutdown_request_called_if_verify_request_false.<locals>.MyServer.shutdown_requestN)rrrr�r�r�rrrrr7+sr7rrI)rdrer.rfr-rLrZr[r>r]Zhandle_requestrr�r3)r%r7rBr^rrr�4test_shutdown_request_called_if_verify_request_false's	

zAMiscTestCase.test_shutdown_request_called_if_verify_request_falseN)rrrr�r�rrrrr|s
r|�__main__)*ry�
contextlibrZselectr	r-�errnor/ZunittestrdZtest.supportZtestrrrrM�ImportErrorZsupportZrequiresr\r.rrbZ
skipUnlessr{ZHAVE_FORKINGrzr
rrZForkingMixInrjrrrr�contextmanagerr!ZTestCaser"r|r�mainrrrr�<module>sL
			�"