a
    dZ                     @   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+ G d!d" d"e(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(Z6e7d0krddd1l8m9Z9 e9e: dS )2z
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)PYTHON_EXE_ENV)SCRIPTS_DIR)PsutilTestCase)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
J t  }||}| d|j | | d| | d| W d    n1 s0    Y  tjjt jd	t t d
J t  }||}| d|j | | d| | d| W d    n1 s0    Y  tjjt jd	t t d
> t  }||}| d|j | | d| W d    n1 s0    Y  d S )Nzpsutil.Processzpid=%sz	name='%s'zname=u'zname='zstatus=z	exitcode=zstatus='terminated'nameZside_effectzstatus='zombie'zname=Z
terminated)psutilProcessZspawn_testprocpidassertInstrr!   replaceassertNotIn	terminatewaitr   patchobjectZombieProcessosgetpidNoSuchProcessAccessDenied)selffuncpr r7   _/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/psutil/tests/test_misc.pytest_process__repr__?   sJ    
,,z'TestSpecialMethods.test_process__repr__c                 C   s   | j td d S )N)r4   )r9   r'   r3   r7   r7   r8   test_process__str__c   s    z&TestSpecialMethods.test_process__str__c                 C   s   |  tt d d S )Nzpsutil.Error())assertEqualreprr#   Errorr:   r7   r7   r8   test_error__repr__f   s    z%TestSpecialMethods.test_error__repr__c                 C   s   |  tt d d S )N )r<   r'   r#   r>   r:   r7   r7   r8   test_error__str__i   s    z$TestSpecialMethods.test_error__str__c                 C   s6   |  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!   rC   z5psutil.NoSuchProcess(pid=321, name='name', msg='msg'))r<   r=   r#   r1   r:   r7   r7   r8   test_no_such_process__repr__l   s    z/TestSpecialMethods.test_no_such_process__repr__c                 C   s6   |  ttdd |  ttjddddd d S )NrB   z"process no longer exists (pid=321)r!   rC   rD   msg (pid=321, name='name'))r<   r'   r#   r1   r:   r7   r7   r8   test_no_such_process__str__t   s    z.TestSpecialMethods.test_no_such_process__str__c              	   C   s8   |  ttdd |  ttjdddddd d S )NrB   zGpsutil.ZombieProcess(pid=321, msg="PID still exists but it's a zombie")r!   @  foor!   ZppidrC   z?psutil.ZombieProcess(pid=321, ppid=320, name='name', msg='foo'))r<   r=   r#   r.   r:   r7   r7   r8   test_zombie_process__repr__|   s    z.TestSpecialMethods.test_zombie_process__repr__c              	   C   s8   |  ttdd |  ttjdddddd d S )NrB   z,PID still exists but it's a zombie (pid=321)r!   rH   rI   rJ   z$foo (pid=321, ppid=320, name='name'))r<   r'   r#   r.   r:   r7   r7   r8   test_zombie_process__str__   s    z-TestSpecialMethods.test_zombie_process__str__c                 C   s6   |  ttdd |  ttjddddd d S )NrB   zpsutil.AccessDenied(pid=321)r!   rC   rD   z4psutil.AccessDenied(pid=321, name='name', msg='msg'))r<   r=   r#   r2   r:   r7   r7   r8   test_access_denied__repr__   s    z-TestSpecialMethods.test_access_denied__repr__c                 C   s6   |  ttdd |  ttjddddd d S )NrB   z	(pid=321)r!   rC   rD   rF   )r<   r'   r#   r2   r:   r7   r7   r8   test_access_denied__str__   s    z,TestSpecialMethods.test_access_denied__str__c                 C   s6   |  ttdd |  ttjddddd d S )N   z?psutil.TimeoutExpired(seconds=5, msg='timeout after 5 seconds')rB   r!   r%   r!   zUpsutil.TimeoutExpired(pid=321, name='name', seconds=5, msg='timeout after 5 seconds'))r<   r=   r#   TimeoutExpiredr:   r7   r7   r8   test_timeout_expired__repr__   s    z/TestSpecialMethods.test_timeout_expired__repr__c                 C   s6   |  ttdd |  ttjddddd d S )NrO   ztimeout after 5 secondsrB   r!   rP   z.timeout after 5 seconds (pid=321, name='name'))r<   r'   r#   rQ   r:   r7   r7   r8   test_timeout_expired__str__   s    z.TestSpecialMethods.test_timeout_expired__str__c                 C   s>   t  }t  }| || d|_| || | |d d S )N)r   r   rI   )r#   r$   r<   _identassertNotEqual)r3   p1p2r7   r7   r8   test_process__eq__   s    z%TestSpecialMethods.test_process__eq__c                 C   s(   t t t g}| t|d d S )N   )setr#   r$   r<   len)r3   sr7   r7   r8   test_process__hash__   s    z'TestSpecialMethods.test_process__hash__N)__name__
__module____qualname__r=   r9   r;   r?   rA   rE   rG   rK   rL   rM   rN   rR   rS   rX   r]   r7   r7   r7   r8   r    =   s   $		r    c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestMiscc              	   C   s   t t}|D ]~}|dv rq|dszt| W q ty   |tjvrtt|}|d u r^Y q|jd urd|j vr| 	d| Y q0 qtjD ]}| 
|| qd S )N)longteststestPermissionErrorProcessLookupError_
deprecatedz%r not in psutil.__all__)dirr#   
startswith
__import__ImportError__all__getattr__doc__lowerfailr&   )r3   Z
dir_psutilr!   Zfunr7   r7   r8   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 r7   )r'   ).0xr7   r7   r8   
<listcomp>       z)TestMisc.test_version.<locals>.<listcomp>)r<   joinr#   version_info__version__r:   r7   r7   r8   test_version   s    zTestMisc.test_versionc                 C   s"   t  }d|_| d|  d S )N1rI   )r#   r$   rI   r)   as_dict)r3   r5   r7   r7   r8   !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rnt	j
dsnn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pickler<   )retabr:   r7   r8   check   s
    

z*TestMisc.test_serialization.<locals>.checkr   )intervalz/proc/diskstats)r#   r$   r}   Zvirtual_memoryZswap_memoryZ	cpu_timesZcpu_times_percentnet_io_countersr   r/   pathexistsr   disk_io_countersZdisk_partitions
disk_usagegetcwdusers)r3   r   r7   r:   r8   test_serialization   s    zTestMisc.test_serializationc              	   C   s  t jjtjdtjd"}t  |js*J W d    n1 s>0    Y  t jjtjdtdd"}t  |jsvJ W d    n1 s0    Y  t jjtjdtdL}| 	t t  W d    n1 s0    Y  |jsJ W d    n1 s0    Y  d S )NZcreate_timer"   rY   )
r   r,   r-   r#   r$   r2   calledr.   
ValueErrorassertRaises)r3   methr7   r7   r8   test_ad_on_process_creation  s&    ((&z$TestMisc.test_ad_on_process_creationc              	   C   sz   t jdddX | t}tt W d    n1 s80    Y  | dt|j	  W d    n1 sl0    Y  d S )Nzpsutil._psplatform.cext.versionz0.0.0Zreturn_valuezversion conflict)
r   r,   r   rl   r   r#   r&   r'   	exceptionrp   )r3   cmr7   r7   r8   test_sanity_version_check  s    &z"TestMisc.test_sanity_version_checkN)	r^   r_   r`   rr   r{   r~   r   r   r   r7   r7   r7   r8   ra      s   !ra   c                   @   sR   e Zd Zdd ZeZdddZdd Zdd	 Zd
d Zdd Z	dd Z
dd ZdS )TestMemoizeDecoratorc                 C   s
   g | _ d S r   callsr:   r7   r7   r8   setUp'  s    zTestMemoizeDecorator.setUpNc              	   C   s,  t dD ]2}| }| | jdi fg |d ur| || qt dD ]:}|d}| | jdi fdi fg |d urD| || qDt dD ]H}|ddd}| | jdi fdi fdddifg |d ur| || q| t| jd |  | }|d ur| || | t| jd | |jd	 d S )
N   r7   rY   rY   barr         my docstring)ranger<   r   r[   cache_clearro   )r3   objexpected_retvalrg   r   r7   r7   r8   run_against,  s0    
z TestMemoizeDecorator.run_againstc                    s&   t  fdd}|  | j|dd d S )Nc                     s    j | |f dS r      r   appendargskwargsZ	baseclassr7   r8   rI   K  s    z/TestMemoizeDecorator.test_function.<locals>.foor   r   )r	   r   )r3   rI   r7   r   r8   test_functionJ  s    z"TestMemoizeDecorator.test_functionc                    s>   t G  fddd}|  | j|d d | |  d d S )Nc                       s$   e Zd ZdZ fddZdd ZdS )z,TestMemoizeDecorator.test_class.<locals>.Foor   c                    s    j ||f d S r   r   r3   r   r   r   r7   r8   __init__Y  s    z5TestMemoizeDecorator.test_class.<locals>.Foo.__init__c                 S   s   dS )Nr   r7   r:   r7   r7   r8   r   \  s    z0TestMemoizeDecorator.test_class.<locals>.Foo.barN)r^   r_   r`   ro   r   r   r7   r   r7   r8   FooU  s   r   r   r   )r	   r   r<   r   r3   r   r7   r   r8   
test_classT  s
    	zTestMemoizeDecorator.test_classc                 C   s   t G dd d}| | |  | t| t|  | t|dt|d | t|dddt|ddd | t|dt|d d S )Nc                   @   s   e Zd Zdd ZdS )z6TestMemoizeDecorator.test_class_singleton.<locals>.Barc                 _   s   d S r   r7   r   r7   r7   r8   r   g  s    z?TestMemoizeDecorator.test_class_singleton.<locals>.Bar.__init__N)r^   r_   r`   r   r7   r7   r7   r8   Bare  s   r   rY   r   )rI   r   )r	   ZassertIsr<   idrU   )r3   r   r7   r7   r8   test_class_singletonc  s    $z)TestMemoizeDecorator.test_class_singletonc                    s,   G  fddd}|  | j | jdd d S )Nc                       s    e Zd Zee fddZdS )z3TestMemoizeDecorator.test_staticmethod.<locals>.Fooc                     s    j | |f dS r   r   r   r   r7   r8   r   r  s    z7TestMemoizeDecorator.test_staticmethod.<locals>.Foo.barN)r^   r_   r`   staticmethodr	   r   r7   r   r7   r8   r   q  s   r   r   r   r   r   r   r7   r   r8   test_staticmethodp  s    z&TestMemoizeDecorator.test_staticmethodc                    s,   G  fddd}|  | j | jdd d S )Nc                       s    e Zd Zee fddZdS )z2TestMemoizeDecorator.test_classmethod.<locals>.Fooc                    s    j ||f dS r   r   )clsr   r   r   r7   r8   r   ~  s    z6TestMemoizeDecorator.test_classmethod.<locals>.Foo.barN)r^   r_   r`   classmethodr	   r   r7   r   r7   r8   r   }  s   r   r   r   r   r   r7   r   r8   test_classmethod|  s    z%TestMemoizeDecorator.test_classmethodc                    s  t  fdd}g  tdD ].}| }di f}| || | t d qtdD ]0}|d}di f}| || | t d qTtdD ]8}|ddd}dddif}| || | t d	 q|  | }di f}| || | t d
 | |jd d S )Nc                     s     d | |fS )foo docstringNr   r   r   r7   r8   rI     s    
z/TestMemoizeDecorator.test_original.<locals>.foor   r7   rY   r   r   r   r   r   r   )r	   r   r<   r[   r   ro   )r3   rI   rg   r   expectedr7   r   r8   test_original  s0    z"TestMemoizeDecorator.test_original)N)r^   r_   r`   r   tearDownr   r   r   r   r   r   r   r7   r7   r7   r8   r   %  s   

r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestCommonModulec                    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   r7   r8   rI     s    z=TestCommonModule.test_memoize_when_activated.<locals>.Foo.fooN)r^   r_   r`   r
   rI   r7   r   r7   r8   r     s   r   r   rY   )rI   r<   r[   Zcache_activateZcache_deactivate)r3   r   fr7   r   r8   test_memoize_when_activated  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)r\   r7   r7   r8   k  s    z4TestCommonModule.test_parse_environ_block.<locals>.kza=1 r   r|   z	a=1 b=2  r   2za=1 b=  r@   za=1 b=2  c=3 zxxx a=1 z	a=1 =b=2 za=1 b=2)r<   r   )r3   r   r7   r7   r8   test_parse_environ_block  s     




z)TestCommonModule.test_parse_environ_blockc              	   C   s  |  tj t rRtd(}d|_t  t r8J W d    n1 sL0    Y  t  tjdtjd$}t rzJ |jsJ W d    n1 s0    Y  t  tjdtj	d,}t rJ t  |jsJ W d    n1 s0    Y  t  tjdtj	d0}t rJ t  |js0J W d    n1 sF0    Y  n`| 
tjB ttjtj}z|d W |  n
|  0 W d    n1 s0    Y  d S )Nzpsutil._common.socketFzpsutil._common.socket.socketr"   z!psutil._common.socket.socket.bind)z::1r   )Z
addCleanupr   r   r   r,   has_ipv6socketerrorr   gaierrorr   AF_INET6SOCK_STREAMbindclose)r3   r\   sockr7   r7   r8   test_supports_ipv6  sD    (
(
(.z#TestCommonModule.test_supports_ipv6c                 C   s8  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 sf0    Y  tjdtt	jdd | tt| W d    n1 s0    Y  tjdtt	jdd t|rJ W d    n1 s0    Y  tjddd t|rJ W d    n1 s*0    Y  d S )Nzpsutil._common.os.statrI   r"   zpsutil._common.stat.S_ISREGFr   )r/   r   abspath__file__r   dirnamer   r,   OSErrorerrnoEPERMr   EACCESENOENT)r3   Z	this_filer7   r7   r8   test_isfile_strict  s"    
,
,
*z#TestCommonModule.test_isfile_strictc                 C   sH  t rddlm} nddlm} t| }td W d    n1 sF0    Y  | }|dsjJ || d| | t	dd| t| }tt
d W d    n1 s0    Y  | }| d| | d	| t| (}td
d}d|_t| W d    n1 s0    Y  | }| d| | d| d S )Nr   )StringIOZ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   getvaluerj   r&   r   r(   r   r   filename)r3   r   r   rC   excr7   r7   r8   
test_debug  s*    &*
(zTestCommonModule.test_debugc                 C   s   |   }t|d}|d W d    n1 s20    Y  | t|d | t|d | tt|d  | tt|d  | t|d ddd | t|d ddd d S )NwtrI   s   fooz-invalidr   )fallback)Z
get_testfnopenwriter<   r   r   r   r   )r3   Ztestfnr   r7   r7   r8   test_cat_bcat.  s    (zTestCommonModule.test_cat_bcatN)	r^   r_   r`   r   r   r   r   r   r   r7   r7   r7   r8   r     s   #r   rI   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:   r7   r7   r8   r   D  s    zTestWrapNumbers.setUpc                 C   s&   dt dddi}| t|d| d S Ndisk1rO   disk_iontr<   r   r3   inputr7   r7   r8   test_first_callI  s    zTestWrapNumbers.test_first_callc                 C   s8   dt dddi}| t|d| | t|d| d S r   r   r   r7   r7   r8   test_input_hasnt_changedM  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   rO   r   
               r   r   r7   r7   r8   test_increase_but_no_wrapR  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   r7   r7   r8   	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   rO   r      r   Zdisk2   r   r   r7   r7   r8   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   r7   r7   r8   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\  )nvme0n1Z	nvme0n1p1Z	nvme0n1p2Z	nvme0n1p3r   )	r   r  r  r  r  r  r  r  r  r  r   i  )r<   r   )r3   doutr7   r7   r8   test_real_data  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   rO   r   r   rY   r   r   r   
cache_infor<   r3   r   cacher7   r7   r8   test_cache_first_call  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   rO   r   r   r   rY   )r   r   )r   rY   r   r   r   r  r  r7   r7   r8   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   rY   r  r   r   c                     sF   t  }  | d dddddi  | d ddtdgii d S )	NrY   r   r   r   r  r   r   r   )r   r  r<   rZ   )r  r:   r7   r8   check_cache_info  s    
z9TestWrapNumbers.test_cache_wrap.<locals>.check_cache_infor   r   r   )r   r   r  r<   rZ   )r3   r   r  r"  r7   r:   r8   test_cache_wrap  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   rO   r   r  r  r   rY   r  r   r  r  r7   r7   r8   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   rO   r   z?!?)r   r   r   r<   r  r   r7   r7   r8   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| q6t j  t }|D ]}| d| | d| qjt 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   skipTestr   r  r&   r   r)   r<   )r3   cachesr  r7   r7   r8   test_cache_clear_public_apis  s     


z,TestWrapNumbers.test_cache_clear_public_apisN)r^   r_   r`   r   r   r   r   r   r  r	  r
  r  r  r!  r#  r$  r%  unittestskipIfr   r)  r7   r7   r7   r8   r   B  s    
%0	r   zcan't locate scripts directoryc                   @   s|  e Zd ZdZedd Ze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ore  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.d/ Z!d0d1 Z"e	e# dd2d3 Z$e	e% dd4d5 Z&e	e' de	e( d6d7d8 Z)e	e' de	e( d6d9d: Z*d;S )<TestScriptsz-Tests for scripts in the "scripts" directory.c              
   O   s   | dt dtjt|  } t| g}|D ]}|| q*zt|fi |	 }W nF t
y } z.dt|v rt|W  Y d }~S  W Y d }~n
d }~0 0 |sJ ||S )Nenvz%sr2   )
setdefaultr   r/   r   rx   r   r   r   r   stripRuntimeErrorr'   )exer   r   cmdargr  errr7   r7   r8   assert_stdout6  s    zTestScripts.assert_stdoutc                 C   sf   t jt| } tr"t| ddd}n
t| d}| | }W d    n1 sN0    Y  t| d S )Nrtutf8)encoding)	r/   r   rx   r   r   r   readastparse)r1  r   srcr7   r7   r8   assert_syntaxG  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   Ztest_r   zno test defined for %r script)	ri   r/   listdirr   endswithr   splitextrq   rx   )r3   Zmethsr!   r7   r7   r8   test_coverageR  s    
zTestScripts.test_coveragez
POSIX onlyc                 C   s`   t tD ]P\}}}|D ]@}|drt j||}tjt |tj @ s| 	d| qq
d S )Nr   z%r is not executable)
r/   walkr   r?  r   rx   statS_IXUSRST_MODErq   )r3   rootdirsfilesfiler   r7   r7   r8   test_executable\  s    
zTestScripts.test_executablec                 C   s   |  d d S )Nzdisk_usage.pyr5  r:   r7   r7   r8   test_disk_usagee  s    zTestScripts.test_disk_usagec                 C   s   |  d d S )Nzfree.pyrK  r:   r7   r7   r8   	test_freeh  s    zTestScripts.test_freec                 C   s   |  d d S )Nz
meminfo.pyrK  r:   r7   r7   r8   test_meminfok  s    zTestScripts.test_meminfoc                 C   s   |  dtt  d S )Nzprocinfo.pyr5  r'   r/   r0   r:   r7   r7   r8   test_procinfon  s    zTestScripts.test_procinfozno usersc                 C   s   |  d d S )Nzwho.pyrK  r:   r7   r7   r8   test_whoq  s    zTestScripts.test_whoc                 C   s   |  d d S )Nzps.pyrK  r:   r7   r7   r8   test_psu  s    zTestScripts.test_psc                 C   s   |  d d S )Nz	pstree.pyrK  r:   r7   r7   r8   test_pstreex  s    zTestScripts.test_pstreec                 C   s   |  d d S )Nz
netstat.pyrK  r:   r7   r7   r8   test_netstat{  s    zTestScripts.test_netstatc                 C   s   |  d d S )Nzifconfig.pyrK  r:   r7   r7   r8   test_ifconfig~  s    zTestScripts.test_ifconfigr&  c                 C   s   |  dtt  d S )Nzpmap.pyrO  r:   r7   r7   r8   	test_pmap  s    zTestScripts.test_pmapc                 C   s*   dt   jvr| d| d d S )NZussr&  zprocsmem.py)r#   r$   Zmemory_full_info_fieldsr'  r5  r:   r7   r7   r8   test_procsmem  s    
zTestScripts.test_procsmemc                 C   s   |  d d S )Nz
killall.pyr=  r:   r7   r7   r8   test_killall  s    zTestScripts.test_killallc                 C   s   |  d d S )Nz	nettop.pyrY  r:   r7   r7   r8   test_nettop  s    zTestScripts.test_nettopc                 C   s   |  d d S )Nztop.pyrY  r:   r7   r7   r8   test_top  s    zTestScripts.test_topc                 C   s   |  d d S )Nziotop.pyrY  r:   r7   r7   r8   
test_iotop  s    zTestScripts.test_iotopc                 C   s,   |  dt  }| tt | d S )Nzpidof.py)r5  r#   r$   r!   r&   r'   r/   r0   )r3   outputr7   r7   r8   
test_pidof  s    zTestScripts.test_pidofzWINDOWS onlyc                 C   s   |  d d S )Nzwinservices.pyrK  r:   r7   r7   r8   test_winservices  s    zTestScripts.test_winservicesc                 C   s   |  d d S )Nzcpu_distribution.pyrY  r:   r7   r7   r8   test_cpu_distribution  s    z!TestScripts.test_cpu_distributionc                 C   s    t  s| d | d d S )Nzno temperaturesztemperatures.py)r#   Zsensors_temperaturesr'  r5  r:   r7   r7   r8   test_temperatures  s    
zTestScripts.test_temperaturesc                 C   s    t  s| d | d d S )Nzno fanszfans.py)r#   Zsensors_fansr'  r5  r:   r7   r7   r8   	test_fans  s    
zTestScripts.test_fansz
no batteryc                 C   s   |  d d S )Nz
battery.pyrK  r:   r7   r7   r8   test_battery  s    zTestScripts.test_batteryc                 C   s   |  d d S )Nz
sensors.pyrK  r:   r7   r7   r8   test_sensors  s    zTestScripts.test_sensorsN)+r^   r_   r`   ro   r   r5  r=  rA  r*  r+  r   rJ  rL  rM  rN  rP  r   r#   r   rQ  rR  rS  rT  rU  r   rV  rX  rZ  r[  r\  r]  r_  r   r`  ra  r   rb  r   rc  r   r   rd  re  r7   r7   r7   r8   r,  1  sN   









r,  __main__)run_from_name);ro   r:  collectionsr   r   r/   r   r   rC  r*  r#   Zpsutil.testsr   r   r   Zpsutil._commonr   r   r   r   r	   r
   r   r   r   Zpsutil._compatr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    ra   r   r   
namedtupler   r   r+  r   r   r,  r^   Zpsutil.tests.runnerrg  r   r7   r7   r7   r8   <module>   sv    e 
  p 
