????

Your IP : 18.191.150.152


Current Path : /usr/lib64/python3.6/site-packages/psutil/tests/__pycache__/
Upload File :
Current File : //usr/lib64/python3.6/site-packages/psutil/tests/__pycache__/test_connections.cpython-36.opt-1.pyc

3

��JZ�P�@s8dZddlZddlZddlZddlmZddlmZddlmZddlmZddlm	Z	ddl
Z
ddl
mZdd	l
mZdd
l
m
Z
ddl
mZddl
mZdd
l
mZddl
mZddl
mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%dd lm&Z&dd!lm'Z'dd"lm(Z(dd#lm)Z)dd$lm*Z*e
j+�Z,Gd%d&�d&e-�Z.Gd'd(�d(e.e'j/�Z0Gd)d*�d*e.e'j/�Z1Gd+d,�d,e.e'j/�Z2Gd-d.�d.e'j/�Z3e4d/k�r4e!e5�dS)0z;Tests for net_connections() and Process.connections() APIs.�N)�closing)�AF_INET)�AF_INET6)�
SOCK_DGRAM)�SOCK_STREAM)�FREEBSD)�LINUX)�NETBSD)�OPENBSD)�OSX)�POSIX)�SUNOS)�WINDOWS)�
supports_ipv6)�PY3)�AF_UNIX)�bind_socket)�bind_unix_socket)�check_connection_ntuple)�create_sockets)�
get_free_port)�HAS_CONNECTIONS_UNIX)�pyrun)�
reap_children)�run_test_module_by_name)�safe_rmpath)�skip_on_access_denied)�tcp_socketpair)�TESTFN)�TRAVIS)�unittest)�unix_socket_path)�unix_socketpair)�
wait_for_filec@s8eZdZdd�Zdd�Zdd�Zd
dd	�Zddd�ZdS)�BasecCststjdd�}dS)N�all)�kind)r	�thisproc�connections)�self�cons�r+�(/usr/lib64/python3.6/test_connections.py�setUp6sz
Base.setUpcCs"tt�t�tstjdd�}dS)Nr%)r&)rrrr	r'r()r)r*r+r+r,�tearDown<s
z
Base.tearDowncCsrtjdd�}tdd�|D��}tr.||j�S|jt|�d�|djdkrf|j||j�j|j��|dSdS)Nr%)r&cSsg|]}|j|f�qSr+)�fd)�.0�cr+r+r,�
<listcomp>Gsz+Base.get_conn_from_sock.<locals>.<listcomp>�r���)r'r(�dictr	�fileno�assertEqual�lenr/)r)�sockr*Zsmapr+r+r,�get_conn_from_sockEszBase.get_conn_from_sockNcCs�|dkr|j|�}t|�|jdkr6|j|j|j��|j|j|j�|j|j|jtj	tj
��|j�}|r�tr�t
|t�r�|j�}|jtkr�|dd�}|jtkr�tr�n|j|j|�|jtkr�tr�tjdd�}|jtj�|�|S)z�Given a socket, makes sure it matches the one obtained
        via psutil. It assumes this process created one connection
        only (the one supposed to be checked).
        Nr3�r%)r&r4)r:rr/r7r6�family�typeZ
getsockopt�socketZ
SOL_SOCKETZSO_TYPEZgetsocknamer�
isinstance�bytes�decoderrr
�laddrrr'r(�compare_procsys_connections�os�getpid)r)r9�connrBr*r+r+r,�check_socketRs(


zBase.check_socketr%csdytj|d�}Wn tjk
r0tr*dS�YnX�fdd�|D�}|j�|j�|j||�dS)z�Given a process PID and its list of connections compare
        those against system-wide connections retrieved via
        psutil.net_connections.
        )r&Ncs"g|]}|j�kr|dd��qS)Nr3r4)�pid)r0r1)rHr+r,r2�sz4Base.compare_procsys_connections.<locals>.<listcomp>)�psutil�net_connectionsZAccessDeniedr�sortr7)r)rHZ	proc_consr&Zsys_consr+)rHr,rCvsz Base.compare_procsys_connections)N)r%)�__name__�
__module__�__qualname__r-r.r:rGrCr+r+r+r,r$4s
	
$r$c@s|eZdZdZdd�Zeje�d�dd��Zdd�Z	eje�d�d	d
��Z
ejed�dd
��Zejed�dd��Z
dS)�TestUnconnectedSocketsz;Tests sockets which are open but not connected to anything.c
CsFdt�f}tttt|d��� }|j|�}|j|jtj	�WdQRXdS)Nz	127.0.0.1)�addr)
rrrrrrGr7�statusrI�CONN_LISTEN)r)rPr9rFr+r+r,�test_tcp_v4�s

z"TestUnconnectedSockets.test_tcp_v4zIPv6 not supportedc
CsFdt�f}tttt|d��� }|j|�}|j|jtj	�WdQRXdS)Nz::1)rP)
rrrrrrGr7rQrIrR)r)rPr9rFr+r+r,�test_tcp_v6�s

z"TestUnconnectedSockets.test_tcp_v6c
CsFdt�f}tttt|d��� }|j|�}|j|jtj	�WdQRXdS)Nz	127.0.0.1)rP)
rrrrrrGr7rQrI�	CONN_NONE)r)rPr9rFr+r+r,�test_udp_v4�s

z"TestUnconnectedSockets.test_udp_v4c
CsFdt�f}tttt|d��� }|j|�}|j|jtj	�WdQRXdS)Nz::1)rP)
rrrrrrGr7rQrIrU)r)rPr9rFr+r+r,�test_udp_v6�s

z"TestUnconnectedSockets.test_udp_v6z
POSIX onlycCsLt��<}tt|td��� }|j|�}|j|jtj�WdQRXWdQRXdS)N)r=)	r!rrrrGr7rQrIrU)r)�namer9rFr+r+r,�
test_unix_tcp�s
z$TestUnconnectedSockets.test_unix_tcpcCsLt��<}tt|td��� }|j|�}|j|jtj�WdQRXWdQRXdS)N)r=)	r!rrrrGr7rQrIrU)r)rXr9rFr+r+r,�
test_unix_udp�s
z$TestUnconnectedSockets.test_unix_udpN)rLrMrN�__doc__rSr �skipIfrrTrVrWrrYrZr+r+r+r,rO�srOc@sTeZdZdZejed�dd��Zejed�dd��Z	e
ed�d	d
��Zdd�Z
d
S)�TestConnectedSocketPairszJTest socket pairs which are are actually connected to
    each other.
    zunreliable on SUONSc
Cszdt�f}tt|d�\}}zHtjdd�}|jt|�d�|j|djtj	�|j|djtj	�Wd|j
�|j
�XdS)Nz	127.0.0.1)rP�tcp4)r&r;rr3)rrrr'r(r7r8rQrIZCONN_ESTABLISHED�close)r)rP�server�clientr*r+r+r,�test_tcp�s
z!TestConnectedSocketPairs.test_tcpz
POSIX onlycCs2t��� }t|�\}}z�tjdd�}tr6dd�|D�}|jt|�d�tsRtsRt	r�|j|dj
d�|j|dj
d�|j||djp�|dj�nztr�xt|dj|dj
|dj|dj
fD]}|j|d�q�Wn:|j|djp�|dj|�|j|dj
�p|dj
|�Wd|j
�|j
�XWdQRXdS)	N�unix)r&cSsg|]}|jdkr|�qS)z/var/run/log)�raddr)r0r1r+r+r,r2�sz6TestConnectedSocketPairs.test_unix.<locals>.<listcomp>r;r�r3)r!r"r'r(r	r7r8rrr
rdrBr
r_)r)rXr`rar*rPr+r+r,�	test_unix�s&
"z"TestConnectedSocketPairs.test_unix)Zonly_ifcs�fdd�}tjd�}tjd�}ddlm}tjjt�}||�jt	t
�d|d�}||�jt	t
�d|d�}||�jt	t�d	|d�}||�jt	t�d	|d�}	t|�}
t
t|��}t|�}t
t|��}
t�r�t|�}t
t|��}t|	�}t
t|��}nd}d}d}d}�x�tj�D�]�}|j�}�jt|�d
�x�|D]�}|j|
jk�r\|||t
t|ftjd�n�|j|jk�r�|||t
t|
ftjd�nZ|jt|dd�k�r�|||tt|ftjd�n,|jt|dd�k�r0|||tt|ftjd��q0W�qW�jt|jdd�dS)Nc
s�d}t|��j|j|��j|j|��j|j|��j|j|��j|j|�x"|D]}	|j|	d�}
|	|krXqXqXWtr��j	|j
|g�dS)
Nr%�inet�inet4�inet6�tcpr^�tcp6�udp�udp4�udp6)r&)
r%rgrhrirjr^rkrlrmrn)rr7r<r=rBrdrQr(rrCrH)�procrFr<r=rBrdrQZkindsZ	all_kindsr&r*)r)r+r,�
check_conns
z8TestConnectedSocketPairs.test_combos.<locals>.check_conna
            import socket, time
            s = socket.socket($family, socket.SOCK_STREAM)
            s.bind(('$addr', 0))
            s.listen(1)
            with open('$testfn', 'w') as f:
                f.write(str(s.getsockname()[:2]))
            time.sleep(60)
        z�
            import socket, time
            s = socket.socket($family, socket.SOCK_DGRAM)
            s.bind(('$addr', 0))
            with open('$testfn', 'w') as f:
                f.write(str(s.getsockname()[:2]))
            time.sleep(60)
        r)�Templatez	127.0.0.1)r<rPZtestfnz::1r3r%rgrhrjr^rlrmrHrirkrnz???)r&)r%rgrhrjr^)r%rgrhrlrm)r%rgrirjrk)r%rgrirlrn)�textwrap�dedent�stringrqrD�path�basenamerZ
substitute�intrrr�evalr#rr'Zchildrenr(r7r8rHrrIrRrrU�getattr�assertRaises�
ValueError)r)rpZtcp_templateZudp_templaterqZtestfileZ
tcp4_templateZ
udp4_templateZ
tcp6_templateZ
udp6_templateZ	tcp4_procZ	tcp4_addrZ	udp4_procZ	udp4_addrZ	tcp6_procZ	tcp6_addrZ	udp6_procZ	udp6_addr�pr*rFr+)r)r,�test_combossb
z$TestConnectedSocketPairs.test_comboscCs�t����}tjdd�}|jt|�t|��tjdd�}|jt|�t�rJdnd�x,|D]$}|j|jtt	f�|j|j
t�qVWtjdd�}|jt|�d�|j|djt�|j|dj
t�t��rtjdd�}|jt|�d�|j|djt	�|j|dj
t�tjd	d�}|jt|�t��r(dnd�x.|D]&}|j|jtt	f�|j|j
t��q4Wtjd
d�}|jt|�d�|j|djt�|j|dj
t�t��r�tjdd�}|jt|�d�|j|djt	�|j|dj
t�tjdd�}|jt|�t��rd
nd�x2|D]*}|j|jtt	f�|j|j
ttf��qWt��r�tjdd�}|jt|�d�x.|D]&}|j|jt	�|j|j
ttf��qlWt
�r�tjdd�}|jt|�d�x.|D]&}|j|jt�|j|j
ttf��q�WWdQRXdS)Nr%)r&rjr;r3r^rrkrlrmrnrg�rirc�)rr'r(r7r8r�assertInr<rrr=rrrr)r)�socksr*rFr+r+r,�test_multi_sockets_filteringes`





z5TestConnectedSocketPairs.test_multi_sockets_filteringN)rLrMrNr[r r\r
rbrrfrrr}r�r+r+r+r,r]�s
!br]c@sJeZdZdZe�dd��Ze�dd��Ze�eje	o6e
d�dd���Zd	S)
�TestSystemWideConnectionszTests for net_connections().c
s��fdd�}t���ddlm}xZ|j�D]N\}}|dkrBtrBq*|\}}tj|�}�jt|�tt	|���||||�q*W�j
ttjdd�WdQRXdS)NcsVttdt��}xB|D]:}�j|j||d�|j|krF�j|j||d�t|�qWdS)Nr)�msg)ryr>�objectr�r<r=r)r*�families�types_rrF)r)r+r,�check�s

z0TestSystemWideConnections.test_it.<locals>.checkr)�	conn_tmaprcz???)r&)r�psutil._commonr��itemsrrIrJr7r8�setrzr{)r)r�r�r&�groupsr�r�r*r+)r)r,�test_it�s
z!TestSystemWideConnections.test_itcCs@t��0}dd�tjdd�D�}|jt|�t|��WdQRXdS)NcSsg|]}|jtj�kr|�qSr+)rHrDrE)r0�xr+r+r,r2�sz>TestSystemWideConnections.test_multi_socks.<locals>.<listcomp>r%)r&)rrIrJr7r8)r)r�r*r+r+r,�test_multi_socks�sz*TestSystemWideConnections.test_multi_sockszunreliable on OSX + TRAVISc

st��}t|�}WdQRXg�d}xRt|�D]F}tjjt�t|�}tj	d|�}t
|�}�j|j�|j
t|�q,Wx$t|�D]}tt|�}t|�q�W�fdd�tjdd�D�}xJ�D]B�|jt�fdd�|D��|�tj��}	|jt|	jd��|�q�WdS)N�
a                import time, os
                from psutil.tests import create_sockets
                with create_sockets():
                    with open('%s', 'w') as f:
                        f.write(str(os.getpid()))
                    time.sleep(60)
                csg|]}|j�kr|�qSr+)rH)r0r�)�pidsr+r,r2�szFTestSystemWideConnections.test_multi_sockets_procs.<locals>.<listcomp>r%)r&csg|]}|j�kr|�qSr+)rH)r0r�)rHr+r,r2�s)rr8�rangerDru�realpathr�strrrrsr�appendrHZ
addCleanuprr#rIrJr7�Processr()
r)r�Zexpected�times�iZfname�srcZsprocZsysconsr|r+)rHr�r,�test_multi_sockets_procs�s(



z2TestSystemWideConnections.test_multi_sockets_procsN)rLrMrNr[rr�r�r r\rrr�r+r+r+r,r��s
r�c@seZdZdd�ZdS)�TestMisccCs�g}g}xXtt�D]L}|jd�rtt|�}t|�}|jt|�|j||�|j|�|j|�qWtrrtjtj	t
r|tjdS)NZCONN_)�dirrI�
startswithryr�ZassertNotInr�r
Z	CONN_IDLEZ
CONN_BOUNDrZCONN_DELETE_TCB)r)ZintsZstrsrXZnumZstr_r+r+r,�test_connection_constants�s


z"TestMisc.test_connection_constantsN)rLrMrNr�r+r+r+r,r��sr��__main__)6r[rDr>rr�
contextlibrrrrrrIrrr	r
rrr
rr�rZpsutil._compatrZpsutil.testsrrrrrrrrrrrrrrrr r!r"r#r�r'r�r$ZTestCaserOr]r�r�rL�__file__r+r+r+r,�<module>s^\7`P