HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/psutil/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/psutil/tests/__pycache__/test_posix.cpython-36.pyc
3

�[gD�@s�dZddlZddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddlm
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZe
�rNddlZddlZddlm Z d,dd�Z!dd�Z"dd�Z#dd�Z$d d!�Z%d"d#�Z&ej'j(e
d$d%�Gd&d'�d'e��Z)ej'j(e
d$d%�Gd(d)�d)e��Z*ej'j(e
d$d%�Gd*d+�d+e��Z+dS)-zPOSIX specific tests.�N)�AIX)�BSD)�LINUX)�MACOS)�OPENBSD)�POSIX)�SUNOS)�AARCH64)�HAS_NET_IO_COUNTERS)�
PYTHON_EXE)�	QEMU_USER)�PsutilTestCase)�mock)�pytest)�retry_on_failure)�sh)�skip_on_access_denied)�spawn_testproc)�	terminate)�which)�getpagesizecCs�dg}tr|jd�|dk	r0|jdt|�g�nts8trD|jd�n
|jd�tr^|jdd�}|jd	|g�t|�}tr�|j�n|j�d
d�}g}x@|D]8}|j	�}yt
|�}Wntk
r�YnX|j|�q�W|dkr�|S|dSdS)zwWrapper for calling the ps command with a little bit of cross-platform
    support for a narrow range of features.
    �psz--no-headersNz-pz-AZax�startZstimez-o�r)r�append�extend�strrr�replacer�
splitlines�strip�int�
ValueError)�fmt�pid�cmd�outputZ
all_output�line�r'�C/usr/local/lib64/python3.6/site-packages/psutil/tests/test_posix.pyr/s0


rcCs>d}trd}t||�j�}tr6d|dks.t�|dS|dS)N�commandZcommz
/bin/qemu-rr)rr�splitr�AssertionError)r#�fieldr)r'r'r(�ps_namegsr-cCs0d}tstrd}t||�}tjdd|�}|j�S)Nr)�argsz\(python.*?\)$�)rrr�re�subr)r#r,�outr'r'r(�ps_argsrs
r3cCsd}trd}t||�S)NZrssZrssize)rr)r#r,r'r'r(�ps_rss|sr4cCsd}trd}t||�S)NZvszZvsize)rr)r#r,r'r'r(�ps_vsz�sr5c	Cs�ytd|�j�}Wn>tk
rR}z"dt|�j�kr@tjd���WYdd}~XnX|jd�d}|j�}t|d�d}t|d�d}t|d�d}t	|d	j
d
d��}||||fS)Nzdf -k %szdevice busyzdf returned EBUSY�
ri����%r/)rr�RuntimeErrorr�lowerr�skipr*r �floatr)	�devicer2�errr&�fields�	sys_total�sys_used�sys_free�sys_percentr'r'r(�df�s
rFz
POSIX only)�reasonc@s�eZdZdZedd��Zedd��Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Ze�e
�dd���Ze�e
�dd���Zdd�Zdd�Zdd�Zdd�Zejjep�edd�dd��Zd d!�Ze
�d"d#��Zejjed$d�ejjed%d�d&d'���Zd(S))�TestProcesszBCompare psutil results against 'ps' command line utility (mainly).cCsttddgtjd�j|_dS)Nz-Ez-O)�stdin)rr�
subprocess�PIPEr#)�clsr'r'r(�
setUpClass�szTestProcess.setUpClasscCst|j�dS)N)rr#)rLr'r'r(�
tearDownClass�szTestProcess.tearDownClasscCs,td|j�}tj|j�j�}||ks(t�dS)N�ppid)rr#�psutil�ProcessrOr+)�selfZppid_psZppid_psutilr'r'r(�	test_ppid�szTestProcess.test_ppidcCs.td|j�}tj|j�j�j}||ks*t�dS)N�uid)rr#rPrQ�uids�realr+)rRZuid_psZ
uid_psutilr'r'r(�test_uid�szTestProcess.test_uidcCs.td|j�}tj|j�j�j}||ks*t�dS)NZrgid)rr#rPrQZgidsrVr+)rRZgid_psZ
gid_psutilr'r'r(�test_gid�szTestProcess.test_gidcCs,td|j�}tj|j�j�}||ks(t�dS)N�user)rr#rPrQ�usernamer+)rRZusername_psZusername_psutilr'r'r(�
test_username�szTestProcess.test_usernamec
CsJtj�}tjdtd��*}|j�t|j�j�ks2t	�|j
s<t	�WdQRXdS)Nzpsutil.pwd.getpwuid)�side_effect)rPrQr�patch�KeyErrorrZrrUrVr+�called)rR�p�funr'r'r(�test_username_no_resolution�sz'TestProcess.test_username_no_resolutioncCs<tjd�t|j�}tj|j�j�dd}||ks8t�dS)Ng�������?ri)�time�sleepr4r#rPrQ�memory_infor+)rRZrss_psZ
rss_psutilr'r'r(�test_rss_memory�s

zTestProcess.test_rss_memorycCs<tjd�t|j�}tj|j�j�dd}||ks8t�dS)Ng�������?ri)rcrdr5r#rPrQrer+)rRZvsz_psZ
vsz_psutilr'r'r(�test_vsz_memory�s

zTestProcess.test_vsz_memorycCsvt|j�}tjj|�j�}tj|j�j�j�}t	j
dd|�}t	j
dd|�}t	j
dd|�}t	j
dd|�}||ksrt�dS)Nz\d.\dr/z\d)r-r#�os�path�basenamer<rPrQ�namer0r1r+)rRZname_psZname_psutilr'r'r(�	test_name�s
zTestProcess.test_namecCs^d}dddg}tjd|d��8tjd|d��tj�}|j�dksFt�WdQRXWdQRXdS)Nzlong-program-namezlong-program-name-extendedZfooZbarzpsutil._psplatform.Process.name)�return_valuez"psutil._psplatform.Process.cmdline)rr]rPrQrkr+)rRrk�cmdliner`r'r'r(�test_name_long�s
zTestProcess.test_name_longcCs\d}tjd|d��@tjdtjdd�d��tj�}|j�dksDt�WdQRXWdQRXdS)Nzlong-program-namezpsutil._psplatform.Process.name)rmz"psutil._psplatform.Process.cmdlinerr/)r\)rr]rP�AccessDeniedrQrkr+)rRrkr`r'r'r(�test_name_long_cmdline_ad_exc�sz)TestProcess.test_name_long_cmdline_ad_exccCsld}tjd|d��Ptjdtjdd�d��.tj�}tjtj��|j�WdQRXWdQRXWdQRXdS)Nzlong-program-namezpsutil._psplatform.Process.name)rmz"psutil._psplatform.Process.cmdlinerr/)r\)rr]rP�
NoSuchProcessrQr�raisesrk)rRrkr`r'r'r(�test_name_long_cmdline_nsp_excsz*TestProcess.test_name_long_cmdline_nsp_exczps -o start not available)rGcCs\td|j�}tj|j�j�}tjj|�jd�}t|�}tjj|�jd�}|||gksXt	�dS)Nrz%H:%M:%S)
rr#rPrQZcreate_time�datetime�
fromtimestamp�strftime�roundr+)rRZtime_psZtime_psutilZtime_psutil_tstampZround_time_psutilZround_time_psutil_tstampr'r'r(�test_create_timeszTestProcess.test_create_timecCs`t|j�}tj|j�j�}y||ks(t�Wn0tk
rZ|dt|��}||ksVt�YnXdS)N)r-r#rPrQZexer+�len)rRZps_pathnameZpsutil_pathnameZadjusted_ps_pathnamer'r'r(�test_exes
zTestProcess.test_execCsTt|j�}djtj|j�j��}trDt|�t|�krD|j|�sPt	�n||ksPt	�dS)N� )
r3r#�joinrPrQrnr	rz�
startswithr+)rRZ
ps_cmdlineZpsutil_cmdliner'r'r(�test_cmdline1s

zTestProcess.test_cmdlineznot reliable on SUNOSznot reliable on AIXcCs(td|j�}tj�j�}||ks$t�dS)N�nice)rr#rPrQr�r+)rRZps_niceZpsutil_nicer'r'r(�	test_nice?szTestProcess.test_niceN)�__name__�
__module__�__qualname__�__doc__�classmethodrMrNrSrWrXr[rbrrrfrgrlrorqrtr�mark�skipifrrryr{rrrr�r'r'r'r(rH�s*			


rHc@s�eZdZdZe�dd��Zejje	dd�ejje
d�dd�ejjedd�d	d
����Ze�dd��Z
e�d
d��Zdd�Zdd�Zdd�Zdd�Zejjedd�e�dd���ZdS)�TestSystemAPIszTest some system APIs.cs~ttd���tj��ts$tr0d�kr0�jdd�t��t��dkrz�fdd��D��fdd��D�}|jdt	|���dS)Nr#rrcsg|]}|�kr|�qSr'r')�.0�x)�pids_psr'r(�
<listcomp>Xsz,TestSystemAPIs.test_pids.<locals>.<listcomp>csg|]}|�kr|�qSr'r')r�r�)�pids_psutilr'r(r�Yszdifference: )
�sortedrrPZpidsrr�insertrz�failr)rR�
differencer')r�r�r(�	test_pidsKszTestSystemAPIs.test_pidszunreliable on SUNOS)rG�ifconfigzno ifconfig cmdz
not supportedcCsRtd�}xDtjdd�D]4}x.|j�D]}|j|�r$Pq$W|jd||f��qWdS)Nzifconfig -aT)Zpernicz/couldn't find %s nic in 'ifconfig -a' output
%s)rrPZnet_io_countersr*r~r�)rRr%Znicr&r'r'r(�test_nic_names_s
zTestSystemAPIs.test_nic_namescCs�td�}|j�stjd��|jd�}dd�|D�}dd�|D�}t|�ttj��ksXt�|j	tj�|d��ZxRt
tj��D]B\}}|j||ks�t�|j||ks�t�|j
dk	rztj|j
�qzWWdQRXdS)Nzwho -uzno users on this systemr6cSsg|]}|j�d�qS)r)r*)r�r�r'r'r(r�vsz-TestSystemAPIs.test_users.<locals>.<listcomp>cSsg|]}|j�d�qS)r)r*)r�r�r'r'r(r�ws)rP�who)rrrr=r*rzrP�usersr+�subTest�	enumeraterk�terminalr#rQ)rRr2�linesr�Z	terminals�idx�ur'r'r(�
test_usersps


zTestSystemAPIs.test_userscCs�td�}|j�stjd��d}tjd|�}|r4d}nNtjd|�}|rJd}n8tjd|�}|r`d}n"tjd	|�}|r�d}d
d�|D�}|s�tjd|��|jtj�|d
��Dx<t	tj��D],\}}t
j
j|j�j
|�}|||ks�t�q�WWdQRXdS)Nzwho -uzno users on this systemz\d\d\d\d-\d\d-\d\d \d\d:\d\dz%Y-%m-%d %H:%Mz[A-Z][a-z][a-z] \d\d \d\d:\d\dz%b %d %H:%Mz[A-Z][a-z][a-z] \d\dz%b %dz[a-z][a-z][a-z] \d\dcSsg|]}|j��qSr')�
capitalize)r�r�r'r'r(r��sz5TestSystemAPIs.test_users_started.<locals>.<listcomp>z(cannot interpret tstamp in who output
%s)rPr�)rrrr=r0�findallr�rPr�r�rurv�startedrwr+)rRr2Ztstampr�r�r�Zpsutil_valuer'r'r(�test_users_started�s4

z!TestSystemAPIs.test_users_startedcCsVtjdttjd�d��6}tjt��tjj	t
j��WdQRX|jsHt
�WdQRXdS)Nzpsutil._psposix.os.killr/)r\)rr]�OSError�errno�EBADFrrsrP�_psposixZ
pid_existsrh�getpidr_r+)rR�mr'r'r(�test_pid_exists_let_raise�sz(TestSystemAPIs.test_pid_exists_let_raisecCsVtjdttjd�d��6}tjt��tjj	t
j��WdQRX|jsHt
�WdQRXdS)Nzpsutil._psposix.os.waitpidr/)r\)rr]r�r�r�rrsrPr��wait_pidrhr�r_r+)rRr�r'r'r(�test_os_waitpid_let_raise�sz(TestSystemAPIs.test_os_waitpid_let_raisecCs^tjdttjd�d��>}tjtjj	��tjj
tj�dd�WdQRX|j
sPt�WdQRXdS)Nzpsutil._psposix.os.waitpidr/)r\g{�G�z�?)�timeout)rr]r�r�ZEINTRrrsrPr��TimeoutExpiredr�rhr�r_r+)rRr�r'r'r(�test_os_waitpid_eintr�sz$TestSystemAPIs.test_os_waitpid_eintrcCsNtjddd��6}tjt��tjjtj	��WdQRX|j
s@t�WdQRXdS)Nzpsutil._psposix.os.waitpidr)rm���)rr�)rr]rrsr!rPr�r�rhr�r_r+)rRr�r'r'r(�test_os_waitpid_bad_ret_status�s
z-TestSystemAPIs.test_os_waitpid_bad_ret_statuszunreliable on AIXc	Cs�d
}x�tjdd�D]�}tj|j�}yt|j�\}}}}WnJtk
r�}z.t|�j�}d|ksnd|ksnd|krpw�WYdd}~XqXt	|j
|�|ks�t�t	|j|�|ks�t�t	|j
|�|ks�t�t	|j|�dkst�qWdS)Nr9iF)�allzno such file or directoryzraw devices not supportedzpermission deniedrii@)rPZdisk_partitions�
disk_usage�
mountpointrFr?r;rr<�abs�totalr+�used�free�percent)	rRZ	tolerance�part�usagerBrCrDrEr@r'r'r(�test_disk_usage�s zTestSystemAPIs.test_disk_usageN)r�r�r�r�rr�rr�r�rrr
r�r�r�r�r�r�r�rr�r'r'r'r(r�Gs'
	
r�c@seZdZdd�ZdS)�TestMisccCs4t�}|dkst�|tj�ks"t�|tjks0t�dS)Nr)rr+�resource�mmapZPAGESIZE)rRZpagesizer'r'r(�test_getpagesize�szTestMisc.test_getpagesizeN)r�r�r�r�r'r'r'r(r��sr�)N),r�rur�rhr0rJrcrPrrrrrrrZpsutil.testsr	r
rrr
rrrrrrrrr�r�Zpsutil._psutil_posixrrr-r3r4r5rFr�r�rHr�r�r'r'r'r(�<module>sZ
8
-#