[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@13.58.191.60: ~ $


Cs[m��@s�dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddlm'Z'ddlm(Z(ddlm)Z)ddlm*Z*ddlm+Z+dd lm,Z,dd!lm-Z-Gd"d#�d#e-j.�Z/e0d$kr�e(e1�dS)%zTests for system APIS.�N)�AIX)�BSD)�FREEBSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�POSIX)�SUNOS)�WINDOWS)�long)�APPVEYOR)�ASCII_FS)�check_net_address)�DEVNULL)�enum)�get_test_subprocess)�HAS_BATTERY)�HAS_CPU_FREQ)�HAS_SENSORS_BATTERY)�HAS_SENSORS_FANS)�HAS_SENSORS_TEMPERATURES)�mock)�
reap_children)�retry_before_failing)�run_test_module_by_name)�safe_rmpath)�TESTFN)�TESTFN_UNICODE)�TRAVIS)�unittestc@sneZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
eje
d�dd��Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Z d7d8�Z!d9d:�Z"d;d<�Z#d=d>�Z$d?d@�Z%dAdB�Z&dCdD�Z'dEdF�Z(dGdH�Z)eje*dI�dJdK��Z+eje,p�e-p�e.dL�dMdN��Z/eje,o.e0j1j2dO�dP�eje3oOe4j5�dQkdR�dSdT���Z6dUdV�Z7eje3p�e*o�e4j8�dW�dXdY��Z9dZd[�Z:eje;d\�d]d^��Z<d_d`�Z=eje>da�dbdc��Z?eje>da�ddde��Z@ejeAda�ejeBdf�dgdh���ZCejeDda�didj��ZEdQS)k�TestSystemAPIszTests for system-related APIs.cCstt�dS)N)rr)�self�r#�/test_system.py�setUp?szTestSystemAPIs.setUpcCst�dS)N)r)r"r#r#r$�tearDownBszTestSystemAPIs.tearDowncCsF|jtj�dd�tj�D��t�}|j|jdd�tj�D��tj|j�}|j�|j	�|j
|jdd�tj�D��tjddtj
tj����!|jttj��g�WdQRXtjddtjtj����/|jtj��ttj��WdQRXWdQRXdS)NcSsg|]}|j�qSr#)�pid)�.0�xr#r#r$�
<listcomp>Fs	z4TestSystemAPIs.test_process_iter.<locals>.<listcomp>cSsg|]}|j�qSr#)r')r(r)r#r#r$r*Hs	cSsg|]}|j�qSr#)r')r(r)r#r#r$r*Ls	zpsutil.Process�side_effect)�assertIn�os�getpid�psutil�process_iterrr'�Process�kill�waitZassertNotInr�patchZ
NoSuchProcess�assertEqual�list�AccessDenied�assertRaises)r"�sproc�pr#r#r$�test_process_iterEs)	&

&#z TestSystemAPIs.test_process_itercCs�x?tjddg�D](}|jt|jj��dg�qW|jt��ttjddg��WdQRXtj	ddtj
dd���d}xKtjdddg�D]1}|j|jd�|j|jdd�q�W|j
s�t�WdQRXtj	ddtj
dd���v}t�}xTtjdddgd	|�D]4}|j|jd|�|j|jdd�qFW|j
s�t�WdQRXdS)
NZattrsr'Zfooz$psutil._psplatform.Process.cpu_timesr+r��	cpu_timesZad_value)r/r0r5r6�info�keysr8�
ValueErrorrr4r7�assertIsNone�assertGreaterEqual�called�AssertionError�object�assertIs)r"r:�m�flagr#r#r$�test_prcess_iter_w_paramsVs$& 	z(TestSystemAPIs.test_prcess_iter_w_paramscs��fdd�}g�t�}t�}t�}dd�|||fD�}�jttj|dd��jttj|dd�tj�}tj|ddd|�\}}�jtj�|d	��j|g��jt	|�d
��j�g�x$|D]}	�j
t|	d��qWtd��fd
d��}
|j
�|
||�\}}�j|jdd�|D��tr��j|j�jtj�n�j|j�jd��j�|jg�x$|D]}	�j
t|	d��q�Wtd��fdd��}
|j
�|j
�|
||�\}}�jt��t|j|j|jg��x$|D]}	�jt|	d��q�WdS)Ncs�j|j�dS)N)�appendr')r:)�pidsr#r$�callbackksz0TestSystemAPIs.test_wait_procs.<locals>.callbackcSs"g|]}tj|j��qSr#)r/r1r')r(r)r#r#r$r*rs	z2TestSystemAPIs.test_wait_procs.<locals>.<listcomp>�timeout�rLg{�G�z�?g�?��
returncode�csWtj|ddd|�\}}�jt|�d��jt|�d�||fS)NrMg���Q��?rLrN�)r/�
wait_procsr5�len)�procsrL�gone�alive)r"r#r$�tests
z,TestSystemAPIs.test_wait_procs.<locals>.testcSsg|]}|j�qSr#)r')r(r)r#r#r$r*�s	csWtj|ddd|�\}}�jt|�d��jt|�d�||fS)NrMg���Q��?rLrOr)r/rSr5rT)rUrLrVrW)r"r#r$rX�s
���)rr8r@r/rS�	TypeError�time�
assertLessr5rT�assertFalse�hasattrr�	terminater,r'r	�poprP�signal�SIGTERM�set�
assertTrue)r"rL�sproc1�sproc2�sproc3rU�trVrWr:rXr#)rKr"r$�test_wait_procsjsB			!

  


.
zTestSystemAPIs.test_wait_procscCskt�}t�}t�}dd�|||fD�}x|D]}|j�q>Wtj|�\}}dS)NcSs"g|]}tj|j��qSr#)r/r1r')r(r)r#r#r$r*�s	z=TestSystemAPIs.test_wait_procs_no_timeout.<locals>.<listcomp>)rr_r/rS)r"rerfrgrUr:rVrWr#r#r$�test_wait_procs_no_timeout�s			
z)TestSystemAPIs.test_wait_procs_no_timeoutcCsFtj�}|j|t�|j|d�|j|tj��dS)Nr)r/Z	boot_time�assertIsInstance�float�
assertGreaterr\r[)r"Zbtr#r#r$�test_boot_time�szTestSystemAPIs.test_boot_timez
POSIX onlycCs/ddl}|jtjd�|j��dS)Nr�SC_PAGE_SIZE)�resourcer5r-�sysconfZgetpagesize)r"rpr#r#r$�
test_PAGESIZE�szTestSystemAPIs.test_PAGESIZEcCsJtj�}|jdks't|��|jdksBt|��d|jko\dknsmt|��|jdks�t|��|jdks�t|��x�|jD]�}t	||�}|dkr�|j
|ttf�|dkr�|dks|j
d||f�||jkr�|j
d||j||f�q�WdS)Nr�d�percent�totalz%r < 0 (%s)z%r > total (total=%s, %s=%s))r/Zvirtual_memoryrurDZ	availablert�used�free�_fields�getattrrk�intr�fail)r"�mem�name�valuer#r#r$�test_virtual_memory�s +	z"TestSystemAPIs.test_virtual_memorycCstj�}|j|jd	�|jdks:t|��|jdksUt|��|jdkr�|jdks�t|��n|jdks�t|��d|jko�dkns�t|��|j	dks�t|��|j
dks�t|��dS)
Nrurvrwrt�sin�soutrrs)rurvrwrtr�r�)r/Zswap_memoryr5rxrurDrvrwrtr�r�)r"r|r#r#r$�test_swap_memory�s
+zTestSystemAPIs.test_swap_memorycCs�t�}|jtj|j��tj|j�}|j�|j�|jtj|j��|jtjd��|j	tjd�dtj
�k�dS)NrNrrY)rrdr/�
pid_existsr'r1r2r3r]r5rK)r"r9r:r#r#r$�test_pid_exists�s	

zTestSystemAPIs.test_pid_existscCs�t�tj�}xh|D]`}ytj|�s8t�Wqtk
rytjd�|tj�kru|j|�YqXqWtt	|�dt	|�d�}x*|D]"}|j
tj|�d|�q�WdS)Ng�������?i�ip�msg)rr/rKr�rDr[�sleepr{�range�maxr])r"rKr'r#r#r$�test_pid_exists_2�s


#
z TestSystemAPIs.test_pid_exists_2cCsgdd�tj�D�}tj�}|j|j�|j��|jt|�tt|���dS)NcSsg|]}|j�qSr#)r')r(r)r#r#r$r*�s	z,TestSystemAPIs.test_pids.<locals>.<listcomp>)r/r0rKr5�sortrTrc)r"ZplistZpidlistr#r#r$�	test_pids�szTestSystemAPIs.test_pidscCs1tj}tt_ztj�Wd|t_XdS)N)�sys�stdoutrr/rX)r"r�r#r#r$�	test_test�s
		zTestSystemAPIs.test_testc
Cs�tj�}|j|ttjdd���|j|d�tjjd�r�t	d��}|j
�}WdQRXd|kr�tjd��tjdd�}t
r�tj�dd	�dkr�|j|�n |j|d�|j||�dS)N�percpuTrNz
/proc/cpuinfozphysical idz#cpuinfo doesn't include physical id�logicalFrR�)r�rN)r/�	cpu_countr5rTr=rBr-�path�exists�open�readr ZSkipTestrr�ZgetwindowsversionrA)r"r��fdZcpuinfo_dataZphysicalr#r#r$�test_cpu_counts""zTestSystemAPIs.test_cpu_countcCs�x�d	D]�}tjdd|��)}|jtj��|jsGt�WdQRXtjdd|��/}|jtjdd��|js�t�WdQRXqWdS)
NrNrz$psutil._psplatform.cpu_count_logical�return_valuez%psutil._psplatform.cpu_count_physicalr�FrY)rYrN)rr4rAr/r�rCrD)r"�valrGr#r#r$�test_cpu_count_nones
z"TestSystemAPIs.test_cpu_count_nonecCs{d}tj�}t|�x8|D]0}|j|t�|j|d�||7}q#W|j|t|��t|�dS)Nrg)r/r=�sumrkrlrBr5�str)r"ru�times�cp_timer#r#r$�test_cpu_times!s

zTestSystemAPIs.test_cpu_timescCs\ttj��}tjd�ttj��}||}|dksX|jd|�dS)Ng�������?g�������?z
difference %s)r�r/r=r[r�r{)r"�t1�t2�
differencer#r#r$�test_cpu_times_time_increases>s

z,TestSystemAPIs.test_cpu_times_time_increasescCs�x�tjdd�D]q}d}t|�x8|D]0}|j|t�|j|d�||7}q0W|j|t|��t|�qW|jttjdd�d�ttjdd���dS)Nr�TrgF)	r/r=r�rkrlrBr5r�rT)r"r�rur�r#r#r$�test_per_cpu_timesGs

z!TestSystemAPIs.test_per_cpu_timescCs�tjdd�}tj�d}xtj�|kr%Pq%Wtjdd�}xPt||�D]?\}}t|�t|�}}||}|dkr^dSq^W|j�dS)Nr�Tg�������?g�������?)r/r=r[�zipr�r{)r"Ztot1Zstop_atZtot2r�r�r�r#r#r$�test_per_cpu_times_2hs
z#TestSystemAPIs.test_per_cpu_times_2cCs�tj�}tjdd�}|jdd�t|�D��}x9|jD].}|jt||�t||�dd�qJWdS)Nr�TcSsg|]}t|��qSr#)r�)r(�numr#r#r$r*}s	z<TestSystemAPIs.test_cpu_times_comparison.<locals>.<listcomp>�deltarN)r/r=�_maker�rx�assertAlmostEqualry)r"�baseZper_cpuZ
summed_valuesZfieldr#r#r$�test_cpu_times_comparisonxs"z(TestSystemAPIs.test_cpu_times_comparisoncCs�yN|j|t�|j|d�|j|d�|j|dtj��WnPtk
r�}z0td|tj	|�tj	|�f��WYdd}~XnXdS)NggY@z
%s
last=%s
new=%sg�)
rkrlrBZassertIsNot�assertLessEqualr/r�rD�pprintZpformat)r"rtZlast_retZnew_ret�errr#r#r$�_test_cpu_percent�sz TestSystemAPIs._test_cpu_percentc
Cstjdd�}x?td�D]1}tjdd�}|j|||�|}qW|jt��tjdd�WdQRXdS)N�intervalg����MbP?rsrNrY)r/�cpu_percentr�r�r8r@)r"�lastr)�newr#r#r$�test_cpu_percent�s
zTestSystemAPIs.test_cpu_percentcCs�tjdddd�}|jt|�tj��xVtd�D]H}tjdddd�}x!|D]}|j|||�qfW|}qAW|jt��tjdddd�WdQRXdS)Nr�g����MbP?r�TrsrNrY)	r/r�r5rTr�r�r�r8r@)r"r�r)r�rtr#r#r$�test_per_cpu_percent�s

z#TestSystemAPIs.test_per_cpu_percentcCs�tjdd�}xitd�D][}tjdd�}x!|D]}|j|||�q>W|jt|�||�|}qWdS)Nr�g����MbP?rs)r/�cpu_times_percentr�r�r�)r"r�r)r�rtr#r#r$�test_cpu_times_percent�s
z%TestSystemAPIs.test_cpu_times_percentcCs�tjdddd�}|jt|�tj��x�td�D]r}tjdddd�}xK|D]C}x!|D]}|j|||�qsW|jt|�||�qfW|}qAWdS)Nr�g����MbP?r�Trs)r/r�r5rTr�r�r�r�)r"r�r)r��cpurtr#r#r$�test_per_cpu_times_percent�s

z)TestSystemAPIs.test_per_cpu_times_percentc
Cs�tjdd�dd�tjdd�D�}tjdd|��Fx>tjdd�D]*}x!|D]}|j|dd�qeWqXWWdQRXdS)Nr�TcSs;g|]1}|jdd�tt|j��D���qS)cSsg|]}d�qS)rr#)r(r)r#r#r$r*�s	zQTestSystemAPIs.test_per_cpu_times_percent_negative.<locals>.<listcomp>.<listcomp>)r�r�rTrx)r(r)r#r#r$r*�s	zFTestSystemAPIs.test_per_cpu_times_percent_negative.<locals>.<listcomp>zpsutil.cpu_timesr�)r/r�r=rr4r�)r"Z
zero_timesr�rtr#r#r$�#test_per_cpu_times_percent_negative�s	
z2TestSystemAPIs.test_per_cpu_times_percent_negativec
Cs�tjtj��}|j|jd�|jdksCt|��|jdks^t|��|j	dksyt|��|j|jks�t|��|j|j	ks�t|��d|j
ko�dkns�t|j
��ttd�r[tjtj��}d
}|j|j|j�|j
|j	|j	d
|�|j
|j|jd
|�tj�}|jt��}tj|�WdQRX|j|jjtj�dS)Nrurvrwrtrrs�
disk_usage�ir�)rurvrwrtiiP)r/r�r-�getcwdr5rxrurDrvrwrtr^�shutilr��tempfile�mktempr8�OSError�	exception�errno�ENOENT)r"�usageZshutil_usageZ	toleranceZfname�excr#r#r$�test_disk_usage�s(.zTestSystemAPIs.test_disk_usagec	Cs.tr*|jt��tjt�WdQRXdS)N)rr8�UnicodeEncodeErrorr/r�r)r"r#r#r$�test_disk_usage_unicode�sz&TestSystemAPIs.test_disk_usage_unicodecCstjd�dS)N�.)r/r�)r"r#r#r$�test_disk_usage_bytes�sz$TestSystemAPIs.test_disk_usage_bytescCs�tjdd�}|j|d|�x	|D]}|j|jt�|j|jt�|j|jt�|j|jt�t	r�d|jkr�q,t
s�tjj
|j�s�t|��n|jts�tr�tjj
|j�st|��n!tjj|j�st|��|js,t|��q,Wtjdd�}|j|d|�xtjdd�D]�}t	sAytj|j�Wndtk
r�}zDtr�tr�|jtjkr�wi|jtjtjfkr��WYdd}~XnRXts�tr tjj
|j�sAt|��n!tjj|j�sAt|��|j|jt�|j|jt�qiWdd�}|t�}dd	�tjdd�D�}|j||�tj|�dS)
N�allFr�ZcdromTcSsGtjj|�}x(tjj|�s<tjj|�}qW|j�S)N)r-r��abspath�ismount�dirname�lower)r�r#r#r$�find_mount_pointsz=TestSystemAPIs.test_disk_partitions.<locals>.find_mount_pointcSsg|]}|jj��qSr#)�
mountpointr�)r(r)r#r#r$r*s	z7TestSystemAPIs.test_disk_partitions.<locals>.<listcomp>)r/Zdisk_partitionsrdrkZdevicer�r�ZfstypeZoptsrr	r-r�r�rDr
r�isdir�statr�rr�ZEIO�EPERMZEACCES�__file__r,r�)r"�lsZdiskr�r�ZmountZmountsr#r#r$�test_disk_partitions�sL
$$!$!	z#TestSystemAPIs.test_disk_partitionscs��fdd�}tjdd�}||�tjdd�}�j|g�x9|D]1}�j|��j|t�|||�qWWdS)Ncs��j|d|j��j|d|j��j|d|j��j|d|j��j|d|j��j|d|j��j|d|j��j|d|j�|jdks�t	|��|jdks�t	|��|jdks	t	|��|jdks$t	|��|jdks?t	|��|jdksZt	|��|jdksut	|��|jdks�t	|��dS)	NrrNrRrO�r�r��)
r5Z
bytes_sentZ
bytes_recvZpackets_sentZpackets_recvZerrinZerroutZdropinZdropoutrD)�nt)r"r#r$�check_ntuple!s z9TestSystemAPIs.test_net_io_counters.<locals>.check_ntuple�pernicFT)r/�net_io_counters�assertNotEqualrdrkr�)r"r��ret�keyr#)r"r$�test_net_io_counters s


z#TestSystemAPIs.test_net_io_counterscCsgtjddi��K}|jtjdd��|jtjdd�i�|js\t�WdQRXdS)Nz"psutil._psplatform.net_io_countersr�r�FT)rr4rAr/r�r5rCrD)r"rGr#r#r$�test_net_io_counters_no_nics<s
z+TestSystemAPIs.test_net_io_counters_no_nicsc
Cs5tj�}|st|��tj�}ttjtjtjg�}xt|j	�D]f\}}|j
|t�|jt
t|��t
|��x%|D]}|j
|jt�|j
|jt�|j
|jttd�f�|j
|jttd�f�|j|j|�tjdkr<|j
|jtj�||jr+|jtjkr�tj|j�}tj|��|j|jdf�WdQRXn�|jtjkr+tj|jdtjtjdtj�d}|\}	}
}}}
tj|	|
|�}tj|��|j|
�WdQRXxT|j|j|j|j fD]4}|dk	rJ|jtjkrJt!||j�qJW|jr�|j"|j �q�|j r�|j"|j�q�WqUWt#s�t$s�t%r�t&td�r1|jtjtj�n8t'r|jtjtj(�nt)r1|jtjd�dS)NrOr�r�AF_LINKrN)rOr�rY)*r/�net_if_addrsrD�net_if_statsrc�socket�AF_INET�AF_INET6r��itemsrkr�r5rT�familyrz�addressZnetmask�typeZ	broadcastr,r��version_infor�IntEnum�isup�
contextlib�closing�bind�getaddrinfo�SOCK_STREAM�
AI_PASSIVEZptprrArrr
r^r�	AF_PACKETr)r"�nicsZ	nic_stats�familiesZnicZaddrs�addr�sr>�af�socktype�proto�	canonname�saZipr#r#r$�test_net_if_addrsEsX"

 		z TestSystemAPIs.test_net_if_addrsc
Cs�tr'dtjddddfg}n	dg}tjdd|��Y}tj�dd}|jskt�tr�|j|j	d�n|j|j	d	�WdQRXdS)N�em1z06:3d:29rN�06-3d-29zpsutil._psplatform.net_if_addrsr�rz06:3d:29:00:00:00z06-3d-29-00-00-00rY)rrYrNNN)
r	r/r�rr4r�rCrDr5r�)r"r�rGr�r#r#r$� test_net_if_addrs_mac_null_bytes�s!	z/TestSystemAPIs.test_net_if_addrs_mac_null_byteszunreliable on TRAVISc	Cs�tj�}|st|��tjtjtjf}x�|j�D]~\}}|j|t�|\}}}}|j|t	�|j
||�|j
||�|j|d�|j|d�qCWdS)Nr)r/r�rDZNIC_DUPLEX_FULLZNIC_DUPLEX_HALFZNIC_DUPLEX_UNKNOWNr�rkr��boolr,rB)	r"r�Zall_duplexesr}Zstatsr��duplexZspeedZmtur#r#r$�test_net_if_stats�sz TestSystemAPIs.test_net_if_statszLINUX or BSD or MACOS specificc
CsZtjddttjd���2}tj�}|j|i�|jsOt	�WdQRXdS)Nzpsutil._psutil_posix.net_if_mtur+r<)
rr4r�r�ZENODEVr/r�r5rCrD)r"rGr�r#r#r$�test_net_if_stats_enodev�s
z'TestSystemAPIs.test_net_if_stats_enodevz/proc/diskstatsz3/proc/diskstats not available on this linux versionNzunreliable on APPVEYORcs��fdd�}tjdd�}|dk	s<td��||�tjdd�}�jt|�tt|���x.|D]&}|s�t|��|||�q�WdS)Ncs:�j|d|j��j|d|j��j|d|j��j|d|j�tpets�j|d|j��j|d|j�t	r��j|d|j
��j|d|j��j|d	|j�nt
r�j|d|j�x2|jD]'}t||�dkst|��qWdS)
NrrNrRrOr�r�r�r��)r5Z
read_countZwrite_countZ
read_bytesZwrite_bytesrrZ	read_timeZ
write_timerZread_merged_countZwrite_merged_countZ	busy_timerrxryrD)r�r})r"r#r$r��sz:TestSystemAPIs.test_disk_io_counters.<locals>.check_ntuple�perdiskFzno disks on this system?T)r/�disk_io_countersrDr5rTrc)r"r�r�r�r#)r"r$�test_disk_io_counters�s
"
z$TestSystemAPIs.test_disk_io_counterscCsgtjddi��K}|jtjdd��|jtjdd�i�|js\t�WdQRXdS)Nz#psutil._psplatform.disk_io_countersr�rFT)rr4rAr/r
r5rCrD)r"rGr#r#r$�test_disk_io_counters_no_disks�s
z-TestSystemAPIs.test_disk_io_counters_no_disksz unreliable on APPVEYOR or TRAVIScCstj�}|j|g�x�|D]�}|js>t|��|j|jt�|j|jttd�f�|j	dk	r�|j|j	ttd�f�|j|j	|j
dks�t|��tjj|j
�t
s�tr�|j|j�q#tj|j�q#WdS)Ng)r/�usersr�r}rDrkr�Zterminalr��host�started�datetimeZ
fromtimestamprrrAr'r1)r"r�userr#r#r$�
test_users�s
zTestSystemAPIs.test_userscCsytj�}|j|jd�xS|jD]H}t||�}|j|d�tr)|dkr)|j|d�q)WdS)N�ctx_switches�
interrupts�soft_interrupts�syscallsr)rrrr)rr)r/Z	cpu_statsr5rxryrBrrm)r"Zinfosr}r~r#r#r$�test_cpu_stats�szTestSystemAPIs.test_cpu_statsznot suportedcs��fdd�}tjdd�}tr5|r5dS|sGt|��|tjdd�g�tr��jt|�tj��dS)Ncs�x�|D]{}�j|jd��j|j|j�xI|jD]>}t||�}�j|ttt	f��j
|d�q@WqWdS)N�current�minr�r)rrr�)r5rxr�rr�ryrkrzrrlrB)r�r�r}r~)r"r#r$�check_ls�s
z.TestSystemAPIs.test_cpu_freq.<locals>.check_lsr�TF)r/Zcpu_freqrrDrr5rTr�)r"rr�r#)r"r$�
test_cpu_freq�s	
zTestSystemAPIs.test_cpu_freqc	Cs#ddddddddd	g	}x-|D]%}|jtt|�td
|�q(Wtjdkr�tjsot�tjst�|j	d�dt
jj�kr�tj
s�t�|j	d�q�d
t
jj�krFtjs�t�|jtjtjtjgjd�d�|j	d�|j	d�|j	d�|j	d�q�dt
jj�kspdt
jj�kr�tjst�|j	d	�q�dt
jj�kr�tjs�t�|j	d�n,tjs�t�tjs�t�|j	d�x-|D]%}|jtt|�dd
|�q�WdS)Nr	rrrrrrrr
r��posix�linuxZbsdTrN�sunos�solaris�darwinF)rkryr/rr-r}r	rDr�remover��platformr�rrr5rrr�countr
rrF)r"�namesr}r#r#r$�test_os_constantss>
#





z TestSystemAPIs.test_os_constantsz
not supportedcCs�tj�}x�|j�D]�\}}|j|t�x�|D]}|j|jt�|jdk	rw|j|jd�|jdk	r�|j|jd�|j	dk	r<|j|j	d�q<WqWdS)Nr)
r/�sensors_temperaturesr�rkr��labelrrB�high�critical)r"�tempsr}�entries�entryr#r#r$�test_sensors_temperatures1s
z(TestSystemAPIs.test_sensors_temperaturesc
Cs�ddgi}tjdd|��i}tjdd	�dd
}|jsPt�|j|jd�|j|jd�|j|j	d
�WdQRXdS)NZcoretempr*�I@�N@��Q@z'psutil._psplatform.sensors_temperaturesr�Z
fahrenheitTrg�^@g�a@g�c@)r*r1r2r3)
rr4r/r)rCrDr5rr+r,)r"�drGr-r#r#r$�#test_sensors_temperatures_fahreneit?s	z2TestSystemAPIs.test_sensors_temperatures_fahreneitz
no batterycCs�tj�}|j|jd�|j|jd�|jtjtjfkrc|j|jd�n"|jtjkr�|j|j	�|j
|j	t�dS)Nrrs)r/Zsensors_batteryrBrtr�ZsecsleftZPOWER_TIME_UNKNOWNZPOWER_TIME_UNLIMITEDrdZ
power_pluggedrkr)r"r�r#r#r$�test_sensors_batteryKsz#TestSystemAPIs.test_sensors_batterycCs�tj�}xz|j�D]l\}}|j|t�xM|D]E}|j|jt�|j|jttf�|j	|jd�q<WqWdS)Nr)
r/Zsensors_fansr�rkr�r*rrzrrB)r"Zfansr}r.r/r#r#r$�test_sensors_fansYs
z TestSystemAPIs.test_sensors_fans)F�__name__�
__module__�__qualname__�__doc__r%r&r;rIrirjrnr ZskipIfr	rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr	rrrr
r-r�r�r
r/r
rrrrrrrr(rr0r5rrr6rr7r#r#r#r$r!<sl7	
		!

		
>	<	

%"
r!�__main__)2r;r�rr�r-r�r�rar�r�r�r[r/rrrrrrrr	r
rZpsutil._compatrZpsutil.testsr
rrrrrrrrrrrrrrrrrrr ZTestCaser!r8r�r#r#r#r$�<module>sb���+

Filemanager

Name Type Size Permission Actions
__init__.cpython-35.opt-1.pyc File 31.72 KB 0644
__init__.cpython-35.pyc File 33.22 KB 0644
__main__.cpython-35.opt-1.pyc File 2.66 KB 0644
__main__.cpython-35.pyc File 2.66 KB 0644
test_aix.cpython-35.opt-1.pyc File 3.48 KB 0644
test_aix.cpython-35.pyc File 3.48 KB 0644
test_bsd.cpython-35.opt-1.pyc File 20.06 KB 0644
test_bsd.cpython-35.pyc File 20.06 KB 0644
test_connections.cpython-35.opt-1.pyc File 15.7 KB 0644
test_connections.cpython-35.pyc File 16.1 KB 0644
test_contracts.cpython-35.opt-1.pyc File 23.32 KB 0644
test_contracts.cpython-35.pyc File 24.36 KB 0644
test_linux.cpython-35.opt-1.pyc File 69.39 KB 0644
test_linux.cpython-35.pyc File 70.81 KB 0644
test_memory_leaks.cpython-35.opt-1.pyc File 22.99 KB 0644
test_memory_leaks.cpython-35.pyc File 22.99 KB 0644
test_misc.cpython-35.opt-1.pyc File 35.69 KB 0644
test_misc.cpython-35.pyc File 36.91 KB 0644
test_osx.cpython-35.opt-1.pyc File 11.44 KB 0644
test_osx.cpython-35.pyc File 11.44 KB 0644
test_posix.cpython-35.opt-1.pyc File 14.02 KB 0644
test_posix.cpython-35.pyc File 14.18 KB 0644
test_process.cpython-35.opt-1.pyc File 43.88 KB 0644
test_process.cpython-35.pyc File 44.94 KB 0644
test_sunos.cpython-35.opt-1.pyc File 1.53 KB 0644
test_sunos.cpython-35.pyc File 1.53 KB 0644
test_system.cpython-35.opt-1.pyc File 27.54 KB 0644
test_system.cpython-35.pyc File 29.27 KB 0644
test_unicode.cpython-35.opt-1.pyc File 11.7 KB 0644
test_unicode.cpython-35.pyc File 11.76 KB 0644
test_windows.cpython-35.opt-1.pyc File 31.05 KB 0644
test_windows.cpython-35.pyc File 31.31 KB 0644