403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.145.208.57
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/__pycache__/test_system.cpython-37.pyc
B

�=�_��@szdZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZddlm
Z
ddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm 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,dd"lm-Z-dd#lm.Z.Gd$d%�d%e)�Z/Gd&d'�d'e)�Z0Gd(d)�d)e)�Z1Gd*d+�d+e)�Z2Gd,d-�d-e)�Z3Gd.d/�d/e)�Z4Gd0d1�d1e)�Z5e6d2k�rvdd3l7m8Z8e8e9�dS)4zTests for system APIS.�N)�AIX)�BSD)�FREEBSD)�LINUX)�MACOS)�NETBSD)�OPENBSD)�POSIX)�SUNOS)�WINDOWS)�FileNotFoundError)�long)�ASCII_FS)�check_net_address)�
CI_TESTING)�DEVNULL)�enum)�GLOBAL_TIMEOUT)�HAS_BATTERY)�HAS_CPU_FREQ)�HAS_GETLOADAVG)�HAS_NET_IO_COUNTERS)�HAS_SENSORS_BATTERY)�HAS_SENSORS_FANS)�HAS_SENSORS_TEMPERATURES)�IS_64BIT)�mock)�PsutilTestCase)�PYPY)�retry_on_failure)�GITHUB_ACTIONS)�UNICODE_SUFFIX)�unittestc@s\eZdZdd�Zdd�Ze�eo"ed�dd��Z	e�eo:ed�dd	��Z
d
d�Zdd
�ZdS)�TestProcessAPIsc
Cs�|�t��dd�t��D��|��}|�|jdd�t��D��t�|j�}|��|�	�|�
|jdd�t��D��tjdt�
t���d��|�tt���g�WdQRXtjdt�t���d��*|�tj��tt���WdQRXWdQRXdS)NcSsg|]
}|j�qS�)�pid)�.0�xr$r$�K/opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/test_system.py�
<listcomp>@sz5TestProcessAPIs.test_process_iter.<locals>.<listcomp>cSsg|]
}|j�qSr$)r%)r&r'r$r$r(r)BscSsg|]
}|j�qSr$)r%)r&r'r$r$r(r)Fszpsutil.Process)�side_effect)�assertIn�os�getpid�psutil�process_iter�spawn_testprocr%�Process�kill�waitZassertNotInr�patch�
NoSuchProcess�assertEqual�list�AccessDenied�assertRaises)�self�sproc�pr$r$r(�test_process_iter?sz!TestProcessAPIs.test_process_iterc	Cs8x.tjdgd�D]}|�t|j���dg�qW|�t��ttjdgd��WdQRXtj	dt�
dd�d��L}x:tjddgd�D]&}|�|jd�|�|jdd�q�W|j
s�t�WdQRXtj	dt�
dd�d��X}t�}x>tjddg|d	�D](}|�|jd|�|�|jdd�q�W|j
�s*t�WdQRXdS)
Nr%)�attrsZfooz$psutil._psplatform.Process.cpu_timesr�)r*�	cpu_times)r>Zad_value)r.r/r6r7�info�keysr9�
ValueErrorrr4r8�assertIsNone�assertGreaterEqual�called�AssertionError�object�assertIs)r:r<�m�flagr$r$r(�test_prcess_iter_w_attrsPs$z(TestProcessAPIs.test_prcess_iter_w_attrsz-spawn_testproc() unreliable on PYPY + WINDOWScs��fdd�}g����}���}���}dd�|||fD�}�jttj|dd��jttj|dd�t��}tj|d	|d
�\}}��t��|d���|g���t	|�d����g�x|D]}	��
t|	d
��q�Wtd��fdd��}
|�
�|
||�\}}��|jdd�|D��t�r:��|��jtj�n��|��jd����|jg�x|D]}	��
t|	d
���qbWtd��fdd��}
|�
�|�
�|
||�\}}��t��t|j|j|jg��x|D]}	��t|	d
���q�WdS)Ncs��|j�dS)N)�appendr%)r<)�pidsr$r(�callbackgsz1TestProcessAPIs.test_wait_procs.<locals>.callbackcSsg|]}t�|j��qSr$)r.r1r%)r&r'r$r$r(r)nsz3TestProcessAPIs.test_wait_procs.<locals>.<listcomp>���)�timeout�)rOg{�G�z�?)rQrOg�?��
returncode�cs<tj|d|d�\}}��t|�d���t|�d�||fS)Ng���Q��?)rQrOrR�)r.�
wait_procsr6�len)�procsrO�gone�alive)r:r$r(�test{s
z-TestProcessAPIs.test_wait_procs.<locals>.testcSsg|]
}|j�qSr$)r%)r&r'r$r$r(r)�scs<tj|d|d�\}}��t|�d���t|�d�||fS)Ng���Q��?)rQrOrSr)r.rWr6rX)rYrOrZr[)r:r$r(r\�s
)r0r9rCr.rW�	TypeError�time�
assertLessr6rX�assertFalse�hasattrr�	terminater+r%r	�poprT�signal�SIGTERM�set�
assertTrue)r:rO�sproc1�sproc2�sproc3rY�trZr[r<r\r$)rNr:r(�test_wait_procsdsB

 
zTestProcessAPIs.test_wait_procscCsT|��}|��}|��}dd�|||fD�}x|D]}|��q2Wt�|�\}}dS)NcSsg|]}t�|j��qSr$)r.r1r%)r&r'r$r$r(r)�sz>TestProcessAPIs.test_wait_procs_no_timeout.<locals>.<listcomp>)r0rbr.rW)r:rhrirjrYr<rZr[r$r$r(�test_wait_procs_no_timeout�s
z*TestProcessAPIs.test_wait_procs_no_timeoutcCsv|��}|�t�|j��t�|j�}|��|��|�t�|j��|�t�d��|�	t�d�dt�
�k�dS)NrPr)r0rgr.�
pid_existsr%r1r2r3r`r6rN)r:r;r<r$r$r(�test_pid_exists�szTestProcessAPIs.test_pid_existsc	Cs�t��}xT|D]L}yt�|�s"t�Wqtk
rXt�d�|t��krT|�|�YqXqWtt|�dt|�d�}x |D]}|j	t�|�|d�q~WdS)Ng�������?i�ip)�msg)
r.rNrnrGr^�sleep�fail�range�maxr`)r:rNr%r$r$r(�test_pid_exists_2�s


z!TestProcessAPIs.test_pid_exists_2N)
�__name__�
__module__�__qualname__r=rLr"�skipIfrrrlrmrorur$r$r$r(r#=s
8


r#c@sBeZdZdd�Ze�eo e��d�dd��Z	dd�Z
dd	�Zd
S)�TestMiscAPIscCs4t��}|�|t�|�|d�|�|t���dS)Nr)r.Z	boot_time�assertIsInstance�float�
assertGreaterr_r^)r:Zbtr$r$r(�test_boot_time�szTestMiscAPIs.test_boot_timezunreliable on CIcCs�t��}|�|g�x�|D]�}|js,t|��|�|jt�|�|jttd�f�|j	dk	rp|�|j	ttd�f�|j|j	|j
dks�t|��tj�|j
�t
s�tr�|�|j�qt�|j�qWdS)Ng)r.�users�assertNotEqual�namerGr{�str�terminal�type�host�started�datetime�
fromtimestamprrrDr%r1)r:r�userr$r$r(�
test_users�s

zTestMiscAPIs.test_userscCs&tj}tt_zt��Wd|t_XdS)N)�sys�stdoutrr.r\)r:r�r$r$r(�	test_test�s
zTestMiscAPIs.test_testc	Cs�ddddddddd	g	}x"|D]}|jtt|�t|d
�qWtjdk�rHtjsPt�tjrZt�|�	d�dt
j��kr�tj
s|t�|�	d�n�d
t
j��kr�tjs�t�|�tjtjtjg�d�d�|�	d�|�	d�|�	d�|�	d�n^dt
j��k�sdt
j��k�r tj�st�|�	d	�n&dt
j��k�rjtj�s<t�|�	d�n"tj�sTt�tj�r`t�|�	d�x$|D]}|jtt|�d|d
��qpWdS)Nr	rrrrrrrr
)rp�posix�linuxZbsdTrR�sunos�solaris�darwinF)r{�getattrr.�boolr,r�r	rGr�remover��platform�lowerrrr6rrr�countr
rrI)r:�namesr�r$r$r(�test_os_constants�s>











zTestMiscAPIs.test_os_constantsN)rvrwrxr~r"ryrr.rr�r�r�r$r$r$r(rz�s	rzc@seZdZdd�Zdd�ZdS)�TestMemoryAPIscCs�t��}|jdkst|��|jdks,t|��d|jkrBdksLnt|��|jdks^t|��|jdkspt|��xt|jD]j}t	||�}|dkr�|�
|ttf�|dkrx|dks�|�
d||f�||jkrx|�
d||j||f�qxWdS)Nr�d�percent�totalz%r < 0 (%s)z%r > total (total=%s, %s=%s))r.Zvirtual_memoryr�rGZ	availabler��used�free�_fieldsr�r{�intr
rr)r:�memr��valuer$r$r(�test_virtual_memorys  

z"TestMemoryAPIs.test_virtual_memorycCs�t��}|�|jd�|jdks(t|��|jdks:t|��|jdkrX|jdksjt|��n|jdksjt|��d|jkr�dks�nt|��|j	dks�t|��|j
dks�t|��dS)N)r�r�r�r��sin�soutrr�)r.Zswap_memoryr6r�r�rGr�r�r�r�r�)r:r�r$r$r(�test_swap_memory s

 zTestMemoryAPIs.test_swap_memoryN)rvrwrxr�r�r$r$r$r(r�sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Ze�ed�d d!��Ze�ed"�d#d$��Zd%S)&�TestCpuAPIsc	Cstt��}|�|�|�|ttjdd���|�|d�tj�	d�rpt
d��}|��}WdQRXd|krpt�
d��dS)NT)�percpurRz
/proc/cpuinfozphysical idz#cpuinfo doesn't include physical id)r.�	cpu_countZassertIsNotNoner6rXr@rEr,�path�exists�open�readr"ZSkipTest)r:�logical�fdZcpuinfo_datar$r$r(�test_cpu_count_logical3s

z"TestCpuAPIs.test_cpu_count_logicalcCsft��}tjdd�}|dkr&|�d��trJt��dd�dkrJ|�|�n|�|d�|�||�dS)NF)r�zphysical cpu_count() is NonerV)�rRrR)r.r��skipTestrr��getwindowsversionrDrE)r:r�Zphysicalr$r$r(�test_cpu_count_physical?s
z#TestCpuAPIs.test_cpu_count_physicalc
CszxtdD]l}tjd|d��}|�t���|js2t�WdQRXtjd|d��"}|�tjdd��|jsht�WdQRXqWdS)N)rPrNz$psutil._psplatform.cpu_count_logical)�return_valuez%psutil._psplatform.cpu_count_physicalF)r�)rr4rDr.r�rFrG)r:�valrJr$r$r(�test_cpu_count_noneJs


zTestCpuAPIs.test_cpu_count_nonecCs^d}t��}t|�x,|D]$}|�|t�|�|d�||7}qW|�|t|��t|�dS)Nrg)r.r@�sumr{r|rEr6r�)r:r��times�cp_timer$r$r(�test_cpu_timesVs
zTestCpuAPIs.test_cpu_timescCsPtt���}t��t}x(t��|kr@tt���}||krdSqW|�d�dS)Nztime remained the same)r�r.r@r^rrr)r:�t1Zstop_at�t2r$r$r(�test_cpu_times_time_increasesssz)TestCpuAPIs.test_cpu_times_time_increasescCs�xftjdd�D]V}d}t|�x,|D]$}|�|t�|�|d�||7}q$W|�|t|��t|�qW|�ttjdd�d�ttjdd���dS)NT)r�rgF)	r.r@r�r{r|rEr6r�rX)r:r�r�r�r$r$r(�test_per_cpu_times}s
zTestCpuAPIs.test_per_cpu_timescCs�tjdd�}t��t}xht��|kr0|�d�Stjdd�}x@t||�D]2\}}t�|�t�|�}}||}|dkrHdSqHWqWdS)NT)r�rQg�������?)r.r@r^rrr�zipZ_cpu_busy_time)r:Ztot1Z	giveup_atZtot2r�r��
differencer$r$r(�test_per_cpu_times_2�s
z TestCpuAPIs.test_per_cpu_times_2cCs\t��}tjdd�}|�dd�t|�D��}x*|jD] }|jt||�t||�dd�q4WdS)NT)r�cSsg|]}t|��qSr$)r�)r&�numr$r$r(r)�sz9TestCpuAPIs.test_cpu_times_comparison.<locals>.<listcomp>rR)�delta)r.r@�_maker�r��assertAlmostEqualr�)r:�baseZper_cpuZ
summed_values�fieldr$r$r(�test_cpu_times_comparison�sz%TestCpuAPIs.test_cpu_times_comparisonc
Cs�y<|�|t�|�|d�|�|d�|�|dt���Wn@tk
r|}z"td|t�	|�t�	|�f��Wdd}~XYnXdS)Ngg�gY@z
%s
last=%s
new=%s)
r{r|rEZassertIsNot�assertLessEqualr.r�rG�pprint�pformat)r:r�Zlast_retZnew_ret�errr$r$r(�_test_cpu_percent�szTestCpuAPIs._test_cpu_percentc	Csbtjdd�}x.td�D]"}tjdd�}|�|||�|}qW|�t��tjdd�WdQRXdS)Ng����MbP?)�intervalr�rP)r.�cpu_percentrsr�r9rC)r:�lastr'�newr$r$r(�test_cpu_percent�szTestCpuAPIs.test_cpu_percentc	Cs�tjddd�}|�t|�t���x>td�D]2}tjddd�}x|D]}|�|||�qDW|}q,W|�t��tjddd�WdQRXdS)Ng����MbP?T)r�r�r�rP)	r.r�r6rXr�rsr�r9rC)r:r�r'r�r�r$r$r(�test_per_cpu_percent�s
z TestCpuAPIs.test_per_cpu_percentc	Cs�tjdd�}xNtd�D]B}tjdd�}x|D]}|�|||�q,W|�t|�||�|}qW|�t��tjdd�WdQRXdS)Ng����MbP?)r�r�rP)r.�cpu_times_percentrsr�r�r9rC)r:r�r'r�r�r$r$r(�test_cpu_times_percent�s
z"TestCpuAPIs.test_cpu_times_percentcCs�tjddd�}|�t|�t���x^td�D]R}tjddd�}x:|D]2}x|D]}|�|||�qNW|�t|�||�qDW|}q,WdS)Ng����MbP?T)r�r�r�)r.r�r6rXr�rsr�r�)r:r�r'r��cpur�r$r$r(�test_per_cpu_times_percent�s

z&TestCpuAPIs.test_per_cpu_times_percentc	Csrtjdd�dd�tjdd�D�}tjd|d��8x0tjdd�D] }x|D]}|�|dd�qJWq@WWdQRXdS)NT)r�cSs*g|]"}|�dd�tt|j��D���qS)cSsg|]}d�qS)rr$)r&r'r$r$r(r)�szNTestCpuAPIs.test_per_cpu_times_percent_negative.<locals>.<listcomp>.<listcomp>)r�rsrXr�)r&r'r$r$r(r)�szCTestCpuAPIs.test_per_cpu_times_percent_negative.<locals>.<listcomp>zpsutil.cpu_times)r�)r.r�r@rr4r�)r:Z
zero_timesr�r�r$r$r(�#test_per_cpu_times_percent_negative�s
z/TestCpuAPIs.test_per_cpu_times_percent_negativecCsXt��}|�|jd�x<|jD]2}t||�}|�|d�ts|dkr|�|d�qWdS)N)�ctx_switches�
interrupts�soft_interrupts�syscallsr)r�r�)r.Z	cpu_statsr6r�r�rErr})r:Zinfosr�r�r$r$r(�test_cpu_stats�s
zTestCpuAPIs.test_cpu_statsznot suportedcsd�fdd�}tjdd�}tr*|s*��d��|s6t|��|tjdd�g�tr`��t|�t���dS)Ncsrxl|D]d}��|jd�|jdkr2��|j|j�x6|jD],}t||�}��|ttt	f���
|d�q:WqWdS)N)�current�minrtgr)r6r�rtr�r�r�r{r�r
r|rE)�ls�ntr�r�)r:r$r(�check_lss


z+TestCpuAPIs.test_cpu_freq.<locals>.check_lsT)r�zreturns empty list on FreeBSDF)	r.Zcpu_freqrr�rGrr6rXr�)r:r�r�r$)r:r(�
test_cpu_freqs

zTestCpuAPIs.test_cpu_freqz
not supportedcCsBt��}|�t|�d�x$|D]}|�|t�|�|d�qWdS)NrSg)r.�
getloadavgr6rXr{r|rE)r:Zloadavg�loadr$r$r(�test_getloadavgs

zTestCpuAPIs.test_getloadavgN)rvrwrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r"ryrr�rr�r$r$r$r(r�1s"
!

	

r�c@s�eZdZe�eoed�dd��Ze�ed�dd��Z	dd�Z
d	d
�Ze�eo\e
j�d�d�e�eope��d
�dd���Zdd�ZdS)�TestDiskAPIszunreliable on PYPY32 + 32BITc	Cst�t���}|�|jd�|jdks.t|��|jdks@t|��|j	dksRt|��|j|jksft|��|j|j	kszt|��d|j
kr�dks�nt|j
��ttd�r�t�t���}d}|�|j|j�|j
|j	|j	|d�|j
|j|j|d�|��}|�t��t�|�WdQRXdS)N)r�r�r�r�rr��
disk_usageiP)r�)r.r�r,�getcwdr6r�r�rGr�r�r�ra�shutilr�Z
get_testfnr9r)r:�usageZshutil_usageZ	tolerance�fnamer$r$r(�test_disk_usage#s&"
zTestDiskAPIs.test_disk_usageznot an ASCII fsc	Cs$|�t��t�t�WdQRXdS)N)r9�UnicodeEncodeErrorr.r�r!)r:r$r$r(�test_disk_usage_unicode>sz$TestDiskAPIs.test_disk_usage_unicodecCst�d�dS)N�.)r.r�)r:r$r$r(�test_disk_usage_bytesDsz"TestDiskAPIs.test_disk_usage_bytescs��fdd�}tjdd�}�j||d�xj|D]b}||�trHd|jkrHq,tsdtj�|j	�sjt
|��n|j	tj�|j�s�t
|��|js,t
|��q,Wtjdd�}�j||d�x�tjdd�D]�}||�ts�|jr�yt�
|j�WnVtk
�r6}z6t�rt�r|jtjk�rw�|jtjtjfk�r&�Wdd}~XYq�Xtj�|j�s�t
|��q�Wdd	�}|t�}d
d�tjdd�D�}��||�dS)Ncs���|jt���|jt���|jt���|jt���|jttd�f���|j	ttd�f�|jdk	r�t
s���|jd�|j	dk	r���|j	d�dS)Nr)r{�devicer��
mountpoint�fstype�opts�maxfiler�r��maxpathr r})r�)r:r$r(�check_ntupleHs
z7TestDiskAPIs.test_disk_partitions.<locals>.check_ntupleF)�all)rpZcdromTcSs2tj�|�}xtj�|�s(tj�|�}qW|��S)N)r,r��abspath�ismount�dirnamer�)r�r$r$r(�find_mount_pointysz;TestDiskAPIs.test_disk_partitions.<locals>.find_mount_pointcSsg|]}|jr|j���qSr$)r�r�)r&r'r$r$r(r)�sz5TestDiskAPIs.test_disk_partitions.<locals>.<listcomp>)r.Zdisk_partitionsrgrr�r	r,r�r�r�rGr�r��stat�OSErrorr r�errnoZEIO�EPERM�EACCES�__file__r+)r:r�r�Zdiskr�rZmountZmountsr$)r:r(�test_disk_partitionsGs<


z!TestDiskAPIs.test_disk_partitionsz/proc/diskstatsz3/proc/diskstats not available on this linux versionzunreliable on CIcs~�fdd�}tjdd�}|dk	s(td��||�tjdd�}��t|�tt|���x$|D]}|sjt|��|||�qZWdS)Ncs���|d|j���|d|j���|d|j���|d|j�ts�tsƈ�|d|j���|d|j�t	r���|d|j
���|d|j���|d	|j�nt
rƈ�|d|j�x$|jD]}t||�dks�t|��q�WdS)
NrrRrVrS��r���)r6�
read_count�write_count�
read_bytes�write_bytesrr�	read_time�
write_timerZread_merged_countZwrite_merged_countZ	busy_timerr�r�rG)r�r�)r:r$r(r��sz8TestDiskAPIs.test_disk_io_counters.<locals>.check_ntupleF)�perdiskzno disks on this system?T)r.�disk_io_countersrGr6rXrf)r:r��ret�keyr$)r:r(�test_disk_io_counters�s
z"TestDiskAPIs.test_disk_io_countersc	CsNtjdid��6}|�tjdd��|�tjdd�i�|js@t�WdQRXdS)Nz#psutil._psplatform.disk_io_counters)r�F)rT)rr4rDr.rr6rFrG)r:rJr$r$r(�test_disk_io_counters_no_disks�s

z+TestDiskAPIs.test_disk_io_counters_no_disksN)rvrwrxr"ryrrr�rr�r�rrr,r�r�rr.rrrr$r$r$r(r�!s=r�c@sneZdZe�ed�dd��Ze�ed�dd��Zdd�Zdd	�Z	d
d�Z
e�epZepZe
d�d
d��ZdS)�TestNetAPIsz
not supportedcsl�fdd�}tjdd�}||�tjdd�}��|g�x.|D]&}��|���|t�|||�q>WdS)Ncs(��|d|j���|d|j���|d|j���|d|j���|d|j���|d|j���|d|j���|d|j�|jdks�t	|��|jdks�t	|��|jdks�t	|��|jdks�t	|��|jdks�t	|��|jdks�t	|��|jdk�st	|��|jdk�s$t	|��dS)	NrrRrVrSrr	r�r
)
r6�
bytes_sent�
bytes_recv�packets_sent�packets_recv�errin�errout�dropin�dropoutrG)r�)r:r$r(r��s z6TestNetAPIs.test_net_io_counters.<locals>.check_ntupleF)�pernicT)r.�net_io_countersr�rgr{r�)r:r�rrr$)r:r(�test_net_io_counters�s

z TestNetAPIs.test_net_io_countersc	CsNtjdid��6}|�tjdd��|�tjdd�i�|js@t�WdQRXdS)Nz"psutil._psplatform.net_io_counters)r�F)r!T)rr4rDr.r"r6rFrG)r:rJr$r$r(�test_net_io_counters_no_nics�s

z(TestNetAPIs.test_net_io_counters_no_nicscCsxt��}|st|��t��}ttjtjtjg�}�x�|�	�D�]�\}}|�
|t�|�t
t|��t
|���x�|D�]�}|�
|jt�|�
|jt�|�
|jttd�f�|�
|jttd�f�|�|j|�tjdkr�ts�|�
|jtj�||j�r�|jtjk�r:t�|j�}t�|��|�|jdf�WdQRXnj|jtjk�r�t�|jdtjtjdtj �d}|\}	}
}}}
t�|	|
|�}t�|��|�|
�WdQRXxB|j|j|j|j!fD]*}|dk	�r�|jtjk�r�t"||j��q�W|j�r�|�#|j!�qr|j!rr|�#|j�qrWq<Wt$�s*t%�s*t&�rHt'td��rt|�tjtj�n,t(�r`|�tjtj)�nt*�rt|�tjd�dS)N)rSrr�AF_LINKrP)+r.�net_if_addrsrG�net_if_statsrf�socket�AF_INET�AF_INET6r%�itemsr{r�r6rX�familyr��address�netmaskr��	broadcastr+r��version_inforr�IntEnum�isup�
contextlib�closing�bind�getaddrinfo�SOCK_STREAM�
AI_PASSIVE�ptprrDrrr
rar�	AF_PACKETr)r:�nicsZ	nic_statsZfamiliesZnic�addrs�addr�srA�af�socktype�proto�	canonname�sa�ipr$r$r(�test_net_if_addrs�sX

zTestNetAPIs.test_net_if_addrsc	Csztrdtjddddfg}ndg}tjd|d��B}t��dd}|jsJt�tr^|�|j	d�n|�|j	d�WdQRXdS)	N�em1z06:3d:29)rFrPz06-3d-29NNNzpsutil._psplatform.net_if_addrs)r�rz06:3d:29:00:00:00z06-3d-29-00-00-00)
r	r.r%rr4r&rFrGr6r-)r:rrJr=r$r$r(� test_net_if_addrs_mac_null_bytess

z,TestNetAPIs.test_net_if_addrs_mac_null_bytesc	Cs�t��}|st|��tjtjtjf}xh|��D]\\}}|�|t�|\}}}}|�|t	�|�
||�|�
||�|�|d�|�|d�q.WdS)Nr)r.r'rG�NIC_DUPLEX_FULL�NIC_DUPLEX_HALF�NIC_DUPLEX_UNKNOWNr+r{r�r�r+rE)	r:r;Zall_duplexesr�Zstatsr2�duplex�speed�mtur$r$r(�test_net_if_stats$szTestNetAPIs.test_net_if_statszLINUX or BSD or MACOS specificc	CsDtjdttjd�d��$}t��}|�|i�|js6t	�WdQRXdS)Nzpsutil._psutil_posix.net_if_mtur?)r*)
rr4rrZENODEVr.r'r6rFrG)r:rJrr$r$r(�test_net_if_stats_enodev3s
z$TestNetAPIs.test_net_if_stats_enodevN)rvrwrxr"ryrr#r$rErGrNrrrrOr$r$r$r(r�s
<rc@sreZdZe�ed�dd��Ze�ed�dd��Ze�ed�e�e	d�dd���Z
e�ed�d	d
��ZdS)�TestSensorsAPIsz
not supportedcCs�t��}x�|��D]x\}}|�|t�xb|D]Z}|�|jt�|jdk	rV|�|jd�|jdk	rn|�|jd�|j	dk	r,|�|j	d�q,WqWdS)Nr)
r.�sensors_temperaturesr+r{r��labelr�rE�high�critical)r:�tempsr��entries�entryr$r$r(�test_sensors_temperatures@s



z)TestSensorsAPIs.test_sensors_temperaturesc	Cspddgi}tjd|d��N}tjdd�dd}|js8t�|�|jd�|�|jd	�|�|j	d
�WdQRXdS)NZcoretemp)rRgI@gN@g�Q@z'psutil._psplatform.sensors_temperatures)r�T)Z
fahrenheitrg�^@g�a@g�c@)
rr4r.rQrFrGr6r�rSrT)r:�drJrUr$r$r(�#test_sensors_temperatures_fahreneitNs


z3TestSensorsAPIs.test_sensors_temperatures_fahreneitz
no batterycCspt��}|�|jd�|�|jd�|jtjtjfkrF|�|jd�n|jtjkr^|�|j	�|�
|j	t�dS)Nrr�)r.Zsensors_batteryrEr�r��secsleft�POWER_TIME_UNKNOWN�POWER_TIME_UNLIMITEDrg�
power_pluggedr{r�)r:rr$r$r(�test_sensors_batteryZs
z$TestSensorsAPIs.test_sensors_batterycCsjt��}x\|��D]P\}}|�|t�x:|D]2}|�|jt�|�|jttf�|�	|jd�q,WqWdS)Nr)
r.Zsensors_fansr+r{r�rRr�r�r
rE)r:Zfansr�rVrWr$r$r(�test_sensors_fanshs
z!TestSensorsAPIs.test_sensors_fansN)
rvrwrxr"ryrrXrZrrr_rr`r$r$r$r(rP>s

rP�__main__)�
run_from_name):�__doc__r3r�rr,r�r�rdr(r�r^r.rrrrrrrr	r
rZpsutil._compatrr
Zpsutil.testsrrrrrrrrrrrrrrrrrrr r!r"r#rzr�r�r�rrPrvZpsutil.tests.runnerrbrr$r$r$r(�<module>stJ%q5


Youez - 2016 - github.com/yon3zu
LinuXploit