o
    iz                     @   sh  d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZ
ddl
mZ ddl
mZ ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddlm$Z$ ddlm%Z% ddlm&Z& ddlm'Z' ddlm(Z( ddlm)Z) ddlm*Z* dd lm+Z+ dd!lm,Z, G d"d# d#e(Z-G d$d% d%e(Z.G d&d' d'e(Z/e0d(d)Z1G d*d+ d+e(Z2e	3ej45e' d,G d-d. d.e(Z6e7d/kr2dd0l8m9Z9 e9e: dS dS )1z
Miscellaneous tests.
    N)LINUX)POSIX)WINDOWS)bcat)cat)debug)isfile_strict)memoize)memoize_when_activated)parse_environ_block)supports_ipv6)wrap_numbers)PY3)FileNotFoundError)redirect_stderr)APPVEYOR)
CI_TESTING)HAS_BATTERY)HAS_MEMORY_MAPS)HAS_NET_IO_COUNTERS)HAS_SENSORS_BATTERY)HAS_SENSORS_FANS)HAS_SENSORS_TEMPERATURES)
PYTHON_EXE)ROOT_DIR)SCRIPTS_DIR)PsutilTestCase)import_module_by_path)mock)reload_module)shc                   @   s   e Zd ZefddZdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )TestSpecialMethodsc                 C   s   t |  j}||}| d| | d|j | | dt|  |dd | d| | d| |	  |
  ||}| d| | d| tjjt jd	t t d
% t  }||}| d|j | | d| | d| W d    n1 sw   Y  tjjt jd	t t d
% t  }||}| d|j | | d| | d| W d    n1 sw   Y  tjjt jd	t t d
  t  }||}| d|j | | d| W d    d S 1 sw   Y  d S )Nzpsutil.Processzpid=%sz	name='%s'zname=u'zname='zstatus=z	exitcode=zstatus='terminated'nameside_effectzstatus='zombie'zname=
terminated)psutilProcessspawn_testprocpidassertInstrr"   replaceassertNotIn	terminatewaitr   patchobjectZombieProcessosgetpidNoSuchProcessAccessDenied)selffuncpr r;   Q/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/psutil/tests/test_misc.pytest_process__repr__@   sP   
"z'TestSpecialMethods.test_process__repr__c                 C   s   | j td d S )N)r8   )r=   r+   r7   r;   r;   r<   test_process__str__d      z&TestSpecialMethods.test_process__str__c                 C      |  tt d d S )Nzpsutil.Error())assertEqualreprr&   Errorr>   r;   r;   r<   test_error__repr__g      z%TestSpecialMethods.test_error__repr__c                 C   rA   )N )rB   r+   r&   rD   r>   r;   r;   r<   test_error__str__j   rF   z$TestSpecialMethods.test_error__str__c                 C   6   |  ttdd |  ttjddddd d S )NA  z=psutil.NoSuchProcess(pid=321, msg='process no longer exists')r"   msgr"   rK   z5psutil.NoSuchProcess(pid=321, name='name', msg='msg'))rB   rC   r&   r5   r>   r;   r;   r<   test_no_such_process__repr__m      z/TestSpecialMethods.test_no_such_process__repr__c                 C   rI   )NrJ   z"process no longer exists (pid=321)r"   rK   rL   msg (pid=321, name='name'))rB   r+   r&   r5   r>   r;   r;   r<   test_no_such_process__str__u   rN   z.TestSpecialMethods.test_no_such_process__str__c              	   C   8   |  ttdd |  ttjdddddd d S )NrJ   zGpsutil.ZombieProcess(pid=321, msg="PID still exists but it's a zombie")r"   @  foor"   ppidrK   z?psutil.ZombieProcess(pid=321, ppid=320, name='name', msg='foo'))rB   rC   r&   r2   r>   r;   r;   r<   test_zombie_process__repr__}   s   z.TestSpecialMethods.test_zombie_process__repr__c              	   C   rQ   )NrJ   z,PID still exists but it's a zombie (pid=321)r"   rR   rS   rT   z$foo (pid=321, ppid=320, name='name'))rB   r+   r&   r2   r>   r;   r;   r<   test_zombie_process__str__   s   z-TestSpecialMethods.test_zombie_process__str__c                 C   rI   )NrJ   zpsutil.AccessDenied(pid=321)r"   rK   rL   z4psutil.AccessDenied(pid=321, name='name', msg='msg'))rB   rC   r&   r6   r>   r;   r;   r<   test_access_denied__repr__   rN   z-TestSpecialMethods.test_access_denied__repr__c                 C   rI   )NrJ   z	(pid=321)r"   rK   rL   rO   )rB   r+   r&   r6   r>   r;   r;   r<   test_access_denied__str__   rN   z,TestSpecialMethods.test_access_denied__str__c                 C   rI   )N   z?psutil.TimeoutExpired(seconds=5, msg='timeout after 5 seconds')rJ   r"   r)   r"   zUpsutil.TimeoutExpired(pid=321, name='name', seconds=5, msg='timeout after 5 seconds'))rB   rC   r&   TimeoutExpiredr>   r;   r;   r<   test_timeout_expired__repr__   rN   z/TestSpecialMethods.test_timeout_expired__repr__c                 C   rI   )NrZ   ztimeout after 5 secondsrJ   r"   r[   z.timeout after 5 seconds (pid=321, name='name'))rB   r+   r&   r\   r>   r;   r;   r<   test_timeout_expired__str__   rN   z.TestSpecialMethods.test_timeout_expired__str__c                 C   s>   t  }t  }| || d|_| || | |d d S )N)r   r   rS   )r&   r'   rB   _identassertNotEqual)r7   p1p2r;   r;   r<   test_process__eq__   s   z%TestSpecialMethods.test_process__eq__c                 C   s(   t t t g}| t|d d S )N   )setr&   r'   rB   len)r7   sr;   r;   r<   test_process__hash__   s   z'TestSpecialMethods.test_process__hash__N)__name__
__module____qualname__rC   r=   r?   rE   rH   rM   rP   rV   rW   rX   rY   r]   r^   rc   rh   r;   r;   r;   r<   r!   >   s    $		r!   c                   @   sP   e Zd Zdd Zdd Zdd Zdd Zee	d	d
d Z
dd Zdd ZdS )TestMiscc              	   C   s   t t}|D ]?}|dv rq|dsEzt| W q tyD   |tjvrBtt|}|d u r/Y q|jd urBd|j vrB| 	d| Y qw qtjD ]}| 
|| qId S )N)longteststestPermissionErrorProcessLookupError_
deprecatedz%r not in psutil.__all__)dirr&   
startswith
__import__ImportError__all__getattr__doc__lowerfailr*   )r7   
dir_psutilr"   funr;   r;   r<   test__all__   s*   




zTestMisc.test__all__c                 C   s$   |  ddd tjD tj d S )N.c                 S   s   g | ]}t |qS r;   )r+   ).0xr;   r;   r<   
<listcomp>   s    z)TestMisc.test_version.<locals>.<listcomp>)rB   joinr&   version_info__version__r>   r;   r;   r<   test_version   s   zTestMisc.test_versionc                 C   s"   t  }d|_| d|  d S )N1rS   )r&   r'   rS   r-   as_dict)r7   r9   r;   r;   r<   !test_process_as_dict_no_new_names   s   z*TestMisc.test_process_as_dict_no_new_namesc                    s    fdd}|t    |t   |t   |t   |t jdd |t   tr7t	j
ds7nts?|t   |t   |t t	  |t   d S )Nc                    s<   t d urt t |  t| }t|} | | d S N)jsonloadsdumpspicklerB   )retabr>   r;   r<   check   s
   

z*TestMisc.test_serialization.<locals>.checkr   )intervalz/proc/diskstats)r&   r'   r   virtual_memoryswap_memory	cpu_timescpu_times_percentnet_io_countersr   r3   pathexistsr   disk_io_countersdisk_partitions
disk_usagegetcwdusers)r7   r   r;   r>   r<   test_serialization   s   zTestMisc.test_serializationz*temporarily disabled due to setuptools bugc                 C   sT   t jtd}trt j|s| dS t|}| t	|j
 | | tj d S )Nzsetup.pyzcan't find setup.py)r3   r   r   r   r   r   skipTestr   assertRaises
SystemExitsetuprB   get_versionr&   r   )r7   setup_pymoduler;   r;   r<   test_setup_script   s   
zTestMisc.test_setup_scriptc              	   C   s
  t jjtjdtjd}t  |jsJ W d    n1 sw   Y  t jjtjdtdd}t  |js;J W d    n1 sEw   Y  t jjtjdtd'}| 	t t  W d    n1 siw   Y  |jssJ W d    d S 1 s~w   Y  d S )Ncreate_timer#   rd   )
r   r0   r1   r&   r'   r6   calledr2   
ValueErrorr   )r7   methr;   r;   r<   test_ad_on_process_creation  s.   
"z$TestMisc.test_ad_on_process_creationc              	   C   s|   t jddd- | t}tt W d    n1 sw   Y  | dt|j	  W d    d S 1 s7w   Y  d S )Nzpsutil._psplatform.cext.versionz0.0.0return_valuezversion conflict)
r   r0   r   rw   r   r&   r*   r+   	exceptionr{   )r7   cmr;   r;   r<   test_sanity_version_check  s   
"z"TestMisc.test_sanity_version_checkN)ri   rj   rk   r   r   r   r   unittestskipIfr   r   r   r   r;   r;   r;   r<   rl      s    

rl   c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestCommonModulec                    s  t  fdd}g  tdD ]}| }di f}| || | t d qtdD ]}|d}di f}| || | t d q*tdD ]}|ddd}dddif}| || | t d	 qG|  | }di f}| || | t d
 | |jd d S )Nc                     s     d | |fS )foo docstringNappend)argskwargscallsr;   r<   rS   )  s   
z*TestCommonModule.test_memoize.<locals>.foo   r;   rd   )rd   )barr         r   )r	   rangerB   rf   cache_clearrz   )r7   rS   r   r   expectedr;   r   r<   test_memoize(  s0   zTestCommonModule.test_memoizec                    s   G  fddd}| }g  |   |   | t d g  |j | |   |   | t d g  |j | |   |   | t d d S )Nc                       s   e Zd Ze fddZdS )z9TestCommonModule.test_memoize_when_activated.<locals>.Fooc                    s     d  d S r   r   r>   r   r;   r<   rS   N     z=TestCommonModule.test_memoize_when_activated.<locals>.Foo.fooN)ri   rj   rk   r
   rS   r;   r   r;   r<   FooL  s    r   r   rd   )rS   rB   rf   cache_activatecache_deactivate)r7   r   fr;   r   r<   test_memoize_when_activatedK  s    z,TestCommonModule.test_memoize_when_activatedc                 C   s   dd }|  td|ddi |  td|dd|ddi |  td	|dd|dd
i |  td|dd|ddi |  td|ddi |  td|ddi |  td|ddi d S )Nc                 S   s   t r|  S | S r   )r   upper)rg   r;   r;   r<   kg  r@   z4TestCommonModule.test_parse_environ_block.<locals>.kza=1 r   r   z	a=1 b=2  r   2za=1 b=  rG   za=1 b=2  c=3 zxxx a=1 z	a=1 =b=2 za=1 b=2)rB   r   )r7   r   r;   r;   r<   test_parse_environ_blockf  s    




z)TestCommonModule.test_parse_environ_blockc              	   C   s  |  tj t rtd}d|_t  t rJ W d    n1 s%w   Y  t  tjdtjd}t r<J |jsAJ W d    n1 sKw   Y  t  tjdtj	d}t rbJ t  |jskJ W d    n1 suw   Y  t  tjdtj	d}t rJ t  |jsJ W d    d S 1 sw   Y  d S | 
tj" ttjtj}z|d W |  n|  w W d    d S 1 sw   Y  d S )Nzpsutil._common.socketFzpsutil._common.socket.socketr#   z!psutil._common.socket.socket.bind)z::1r   )
addCleanupr   r   r   r0   has_ipv6socketerrorr   gaierrorr   AF_INET6SOCK_STREAMbindclose)r7   rg   sockr;   r;   r<   test_supports_ipv6y  sN   


""z#TestCommonModule.test_supports_ipv6c                 C   s6  t jt}t|sJ tt j|rJ tjdtt	j
dd | tt| W d    n1 s3w   Y  tjdtt	jdd | tt| W d    n1 sUw   Y  tjdtt	jdd t|rlJ W d    n1 svw   Y  tjddd t|rJ W d    d S 1 sw   Y  d S )Nzpsutil._common.os.statrS   r#   zpsutil._common.stat.S_ISREGFr   )r3   r   abspath__file__r   dirnamer   r0   OSErrorerrnoEPERMr   EACCESENOENT)r7   	this_filer;   r;   r<   test_isfile_strict  s*   


"z#TestCommonModule.test_isfile_strictc                 C   sF  t r	ddlm} nddlm} t| }td W d    n1 s#w   Y  | }|ds5J || d| | t	dd| t| }tt
d W d    n1 s[w   Y  | }| d| | d	| t| }td
d}d|_t| W d    n1 sw   Y  | }| d| | d| d S )Nr   )StringIOhellozpsutil-debugz.pyc.pyzthis is an errorzignoring ValueErrorz'this is an error'r   zno such filez/foo)r   ior   r   r   getvalueru   r*   r   r,   r   r   filename)r7   r   r   rK   excr;   r;   r<   
test_debug  s0   


zTestCommonModule.test_debugc                 C   s   |   }t|d}|d W d    n1 sw   Y  | t|d | t|d | tt|d  | tt|d  | t|d ddd | t|d ddd d S )NwtrS   s   fooz-invalidr   )fallback)
get_testfnopenwriterB   r   r   r   r   )r7   testfnr   r;   r;   r<   test_cat_bcat  s   zTestCommonModule.test_cat_bcatN)
ri   rj   rk   r   r   r   r   r   r   r   r;   r;   r;   r<   r   &  s    ##r   rS   za b cc                   @   s   e Zd Zdd ZeZdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zee ddd ZdS )TestWrapNumbersc                 C   s   t   d S r   )r   r   r>   r;   r;   r<   setUp  s   zTestWrapNumbers.setUpc                 C   s&   dt dddi}| t|d| d S Ndisk1rZ   disk_iontrB   r   r7   inputr;   r;   r<   test_first_call  s   zTestWrapNumbers.test_first_callc                 C   s8   dt dddi}| t|d| | t|d| d S r   r   r   r;   r;   r<   test_input_hasnt_changed  s   z(TestWrapNumbers.test_input_hasnt_changedc                 C   s   dt dddi}| t|d| dt dddi}| t|d| dt dddi}| t|d| dt dddi}| t|d| d S )	Nr   rZ   r   
               r   r   r;   r;   r<   test_increase_but_no_wrap  s   z)TestWrapNumbers.test_increase_but_no_wrapc                 C   s  dt dddi}| t|d| dt dddi}| t|ddt dddi dt dddi}| t|ddt dddi dt dddi}| t|ddt dddi dt dddi}| t|ddt ddd	i dt dddi}| t|ddt ddd	i dt d
ddi}| t|ddt ddd	i dt dddi}| t|ddt ddd	i dt dddi}| t|ddt ddd	i d S )Nr   d   r   r   n   Z      r     2      (   r   r   r;   r;   r<   	test_wrap  sD   zTestWrapNumbers.test_wrapc                 C   st   dt dddi}| t|d| t dddt dddd}| t|d| dt dddi}| t|d| d S )Nr   rZ   r      r   disk2   r   r   r;   r;   r<   test_changing_keys  s   

z"TestWrapNumbers.test_changing_keysc                 C   s.  t dddt dddd}| t|d| t dddt dddd}| t|dt dddt dddd dt dddi}| t|d| t dddt dddd}| t|d| t dddt dddd}| t|d| t dddt dddd}| t|dt dddt dddd d S )Nr
  r  r  r   r   r  r   r   r   r;   r;   r<   test_changing_keys_w_wrap(  s<   













z)TestWrapNumbers.test_changing_keys_w_wrapc                 C   sb   ddddd}|  t|d| |  t|d| ddddd}t|d}|  |d d	 d
 d S )N)	i,      #  R       ȷ  )	i  r   i tU i   i  r   r   r   r  )	6   r  i $ i N r      r  i     )	iU	  i  i"  r  i  i4  i  i  i\  )nvme0n1	nvme0n1p1	nvme0n1p2	nvme0n1p3r   )	r  r  r  r  r  r  r  r  r  r  r   i  )rB   r   )r7   doutr;   r;   r<   test_real_dataF  s   
zTestWrapNumbers.test_real_datac                 C   sb   dt dddi}t|d t }| |d d|i | |d di i | |d di i d S )Nr   rZ   r   r   rd   r   r   r   
cache_inforB   r7   r   cacher;   r;   r<   test_cache_first_callW  s   
z%TestWrapNumbers.test_cache_first_callc                 C   s   dt dddi}t|d dt dddi}t|d t }| |d d|i | |d dddddi | |d di i d S )	Nr   rZ   r   r   r   rd   )r   r   )r   rd   r   r   r   r&  r(  r;   r;   r<   test_cache_call_twice_  s   

z%TestWrapNumbers.test_cache_call_twicec                    s  dt dddi}t|d dt dddi}t|d t } |d d|i  |d dddddi  |d ddtd	gii  fd
d}dt dddi}t|d t } |d d|i |  dt dddi}t|d t } |d d|i |  dt dddi}t|d t } |d d|i  |d dddddi  |d ddtd	gii d S )Nr   r  r   r   r   rd   r+  r   r,  c                     sF   t  }  | d dddddi  | d ddtdgii d S )	Nrd   r   r   r  r+  r   r   r,  )r   r'  rB   re   )r)  r>   r;   r<   assert_z  s   
z0TestWrapNumbers.test_cache_wrap.<locals>.assert_r  r  r  )r   r   r'  rB   re   )r7   r   r)  r.  r;   r>   r<   test_cache_wrapk  s>   





"zTestWrapNumbers.test_cache_wrapc                 C   s   dt dddi}t|d t dddt dddd}t|d t }| |d d|i | |d dddddi | |d	 di i d S )
Nr   rZ   r   r  r  r   rd   r+  r   r&  r(  r;   r;   r<   test_cache_changing_keys  s   



z(TestWrapNumbers.test_cache_changing_keysc                 C   s\   dt dddi}t|d t|d td | t i i i f td td d S )Nr   rZ   r   z?!?)r   r   r   rB   r'  r   r;   r;   r<   test_cache_clear  s   



z TestWrapNumbers.test_cache_clearnot supportedc                 C   s   t  rt  s| dS t   t   t }|D ]}| d| | d| qt j  t }|D ]}| d| | d| q5t j  t }| 	|i i i f d S )Nzno disks or NICs availablezpsutil.disk_io_counterszpsutil.net_io_counters)
r&   r   r   r   r   r'  r*   r   r-   rB   )r7   cachesr)  r;   r;   r<   test_cache_clear_public_apis  s    


z,TestWrapNumbers.test_cache_clear_public_apisN)ri   rj   rk   r   tearDownr   r   r  r  r  r  r%  r*  r-  r/  r0  r1  r   r   r   r4  r;   r;   r;   r<   r     s"    
%0	r   zcan't locate scripts directoryc                   @   s~  e Zd ZdZedd Zed<ddZdd Ze	e
 d	d
d Zdd Zdd Zdd Zdd Ze	eo:e  ddd Zdd Zdd Zdd Zdd Ze	e dd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Ze	e  d.d/d0 Z!d1d2 Z"e	e# dd3d4 Z$e	e% dd5d6 Z&e	e' de	e( d7d8d9 Z)e	e' de	e( d7d:d; Z*dS )=TestScriptsz-Tests for scripts in the "scripts" directory.c              
   O   s   dt jt|  } t| g}|D ]}|| qzt|fi | }W n ty@ } zdt	|v r;t	|W  Y d }~S  d }~ww |sGJ ||S )Nz%sr6   )
r3   r   r   r   r   r   r    stripRuntimeErrorr+   )exer   r   cmdargr$  errr;   r;   r<   assert_stdout  s   zTestScripts.assert_stdoutNc                 C   sf   t jt| } trt| ddd}nt| d}| | }W d    n1 s'w   Y  t| d S )Nrtutf8)encoding)	r3   r   r   r   r   r   readastparse)r9  r   r   srcr;   r;   r<   assert_syntax  s   

zTestScripts.assert_syntaxc                 C   sV   t | }ttD ]}|dr(dtj|d  |vr(| dtjt| q	d S )Nr   test_r   zno test defined for %r script)	rt   r3   listdirr   endswithr   splitextr|   r   )r7   methsr"   r;   r;   r<   test_coverage  s   
zTestScripts.test_coveragez
POSIX onlyc                 C   s`   t tD ](\}}}|D ] }|dr,t j||}tjt |tj @ s,| 	d| qqd S )Nr   z%r is not executable)
r3   walkr   rH  r   r   statS_IXUSRST_MODEr|   )r7   rootdirsfilesfiler   r;   r;   r<   test_executable  s   
zTestScripts.test_executablec                 C      |  d d S )Nzdisk_usage.pyr=  r>   r;   r;   r<   test_disk_usage     zTestScripts.test_disk_usagec                 C   rU  )Nzfree.pyrV  r>   r;   r;   r<   	test_free  rX  zTestScripts.test_freec                 C   rU  )Nz
meminfo.pyrV  r>   r;   r;   r<   test_meminfo  rX  zTestScripts.test_meminfoc                 C      |  dtt  d S )Nzprocinfo.pyr=  r+   r3   r4   r>   r;   r;   r<   test_procinfo  rF   zTestScripts.test_procinfozno usersc                 C   rU  )Nzwho.pyrV  r>   r;   r;   r<   test_who  r   zTestScripts.test_whoc                 C   rU  )Nzps.pyrV  r>   r;   r;   r<   test_ps  rX  zTestScripts.test_psc                 C   rU  )Nz	pstree.pyrV  r>   r;   r;   r<   test_pstree  rX  zTestScripts.test_pstreec                 C   rU  )Nz
netstat.pyrV  r>   r;   r;   r<   test_netstat  rX  zTestScripts.test_netstatc                 C   rU  )Nzifconfig.pyrV  r>   r;   r;   r<   test_ifconfig  rX  zTestScripts.test_ifconfigr2  c                 C   r[  )Nzpmap.pyr\  r>   r;   r;   r<   	test_pmap  s   zTestScripts.test_pmapc                 C   s*   dt   jvr| d| d d S )Nussr2  zprocsmem.py)r&   r'   memory_full_info_fieldsr   r=  r>   r;   r;   r<   test_procsmem  s   
zTestScripts.test_procsmemc                 C   rU  )Nz
killall.pyrE  r>   r;   r;   r<   test_killall$  rX  zTestScripts.test_killallc                 C   rU  )Nz	nettop.pyrh  r>   r;   r;   r<   test_nettop'  rX  zTestScripts.test_nettopc                 C   rU  )Nztop.pyrh  r>   r;   r;   r<   test_top*  rX  zTestScripts.test_topc                 C   rU  )Nziotop.pyrh  r>   r;   r;   r<   
test_iotop-  rX  zTestScripts.test_iotopc                 C   s,   |  dt  }| tt | d S )Nzpidof.py)r=  r&   r'   r"   r*   r+   r3   r4   )r7   outputr;   r;   r<   
test_pidof0  s   zTestScripts.test_pidofzWINDOWS onlyc                 C   rU  )Nzwinservices.pyrV  r>   r;   r;   r<   test_winservices4  r   zTestScripts.test_winservicesc                 C   rU  )Nzcpu_distribution.pyrh  r>   r;   r;   r<   test_cpu_distribution8  rX  z!TestScripts.test_cpu_distributionc                 C       t  s	| d | d d S )Nzno temperaturesztemperatures.py)r&   sensors_temperaturesr   r=  r>   r;   r;   r<   test_temperatures;     
zTestScripts.test_temperaturesc                 C   rq  )Nzno fanszfans.py)r&   sensors_fansr   r=  r>   r;   r;   r<   	test_fansA  rt  zTestScripts.test_fansz
no batteryc                 C   rU  )Nz
battery.pyrV  r>   r;   r;   r<   test_batteryG     zTestScripts.test_batteryc                 C   rU  )Nz
sensors.pyrV  r>   r;   r;   r<   test_sensorsL  rx  zTestScripts.test_sensorsr   )+ri   rj   rk   rz   staticmethodr=  rE  rK  r   r   r   rT  rW  rY  rZ  r]  r   r&   r   r^  r_  r`  ra  rb  r   rc  rg  ri  rj  rk  rl  rn  r   ro  rp  r   rs  r   rv  r   r   rw  ry  r;   r;   r;   r<   r6    sP    








r6  __main__)run_from_name);rz   rB  collectionsr   r   r3   r   r   rM  r   r&   psutil.testsr   r   r   psutil._commonr   r   r   r   r	   r
   r   r   r   psutil._compatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   rl   r   
namedtupler   r   r   r   r   r6  ri   psutil.tests.runnerr|  r   r;   r;   r;   r<   <module>   sx    e 5 p 
