
    Xi                     4   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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 ej                            ed          Zej                            ed          Zej                            eoej                            e           d           G d de                      Z ej                            eoej                            e           d           G d de                      Z!ej                            eoej                            e           d           G d de                      Z"dS ) zTest various scripts.    N)LINUX)POSIX)WINDOWS)
CI_TESTING)HAS_BATTERY)HAS_MEMORY_MAPS)HAS_SENSORS_BATTERY)HAS_SENSORS_FANS)HAS_SENSORS_TEMPERATURES)
PYTHON_EXE)PYTHON_EXE_ENV)ROOT_DIR)SCRIPTS_DIR)PsutilTestCase)import_module_by_path)psutil)shinternalzsetup.pyzcan't find scripts/ directoryreasonc                      e Zd Zed             Zed             Zd Zej        	                    e
 d          d             Zd Zd Zd	 Zd
 Zej        	                    eo ej                     d          d             Zd Zd Zd Zd Zej        	                    e d          d             Zd Zd Zd Zd Zd Zd Zej        	                    e  d          d             Z!d Z"ej        	                    e# d          d             Z$ej        	                    e% d          d             Z&ej        	                    e' d          ej        	                    e( d          d                         Z)ej        	                    e' d          ej        	                    e( d          d                          Z*d!S )"TestExampleScriptsc                    t          j                    }|                    d           t          j                            t          |           } t          | g|}	 t          ||          	                                }n8# t          $ r+}dt          |          v rt          |          cY d }~S  d }~ww xY w|s
J |            |S )NPSUTIL_DEBUG)envAccessDenied)r   copypopospathjoinr   r   r   stripRuntimeErrorstr)exeargsr   cmdouterrs         q/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/psutil/tests/test_scripts.pyassert_stdoutz TestExampleScripts.assert_stdout1   s    !##gll;,,3&&	Sc"""((**CC 	 	 	S))3xx		
 C
s$   #A> >
B3B.'B3-B..B3c                     t           j                            t          |           } t	          | d          5 }|                                }d d d            n# 1 swxY w Y   t          j        |           d S Nutf8)encoding)r   r    r!   r   openreadastparse)r%   fsrcs      r*   assert_syntaxz TestExampleScripts.assert_syntaxA   s    gll;,,#''' 	1&&((C	 	 	 	 	 	 	 	 	 	 	 	 	 	 		#s   AAAc                 T   t          |           }t          j        t                    D ]~}|                    d          rgdt          j                            |          d         z   |vr=t          j        dt          j        	                    t          |          d          c S d S )N.pytest_r   zno test defined for z script)
dirr   listdirr   endswithr    splitextpytestfailr!   )selfmethsnames      r*   test_coveragez TestExampleScripts.test_coverageH   s    D		J{++ 	 	D}}U## RW--d33A66eCC!;GGLLd;;G G G    		 	    z
POSIX onlyr   c                 R   t          j        t                    D ]\  }}}|D ]}|                    d          rlt           j                            ||          }t          j        t          j        |          t          j                 z  st          j
        |d          c c S d S )Nr8   z is not executable)r   walkr   r<   r    r!   statS_IXUSRST_MODEr>   r?   )r@   rootdirsfilesfiler    s         r*   test_executablez"TestExampleScripts.test_executableT   s    !#!5!5 	J 	JD$ J J=='' J7<<d33D<"'$--*EE J%{d+H+H+HIIIIIII	J	J 	JrD   c                 0    |                      d           d S )Nzdisk_usage.pyr+   r@   s    r*   test_disk_usagez"TestExampleScripts.test_disk_usage]   s    ?+++++rD   c                 0    |                      d           d S )Nzfree.pyrP   rQ   s    r*   	test_freezTestExampleScripts.test_free`   s    9%%%%%rD   c                 0    |                      d           d S )Nz
meminfo.pyrP   rQ   s    r*   test_meminfozTestExampleScripts.test_meminfoc       <(((((rD   c                 n    |                      dt          t          j                                         d S )Nzprocinfo.pyr+   r$   r   getpidrQ   s    r*   test_procinfoz TestExampleScripts.test_procinfof   s,    =#bikk*:*:;;;;;rD   zno usersc                 0    |                      d           d S )Nzwho.pyrP   rQ   s    r*   test_whozTestExampleScripts.test_whoi   s    8$$$$$rD   c                 0    |                      d           d S )Nzps.pyrP   rQ   s    r*   test_pszTestExampleScripts.test_psm   s    7#####rD   c                 0    |                      d           d S )Nz	pstree.pyrP   rQ   s    r*   test_pstreezTestExampleScripts.test_pstreep       ;'''''rD   c                 0    |                      d           d S )Nz
netstat.pyrP   rQ   s    r*   test_netstatzTestExampleScripts.test_netstats   rW   rD   c                 0    |                      d           d S )Nzifconfig.pyrP   rQ   s    r*   test_ifconfigz TestExampleScripts.test_ifconfigv   s    =)))))rD   not supportedc                 n    |                      dt          t          j                                         d S )Nzpmap.pyrY   rQ   s    r*   	test_pmapzTestExampleScripts.test_pmapy   s,    9c")++&6&677777rD   c                     dt          j                                                    j        vrt	          j        d          S |                     d           d S )Nussrg   zprocsmem.py)r   Processmemory_full_info_fieldsr>   skipr+   rQ   s    r*   test_procsmemz TestExampleScripts.test_procsmem}   sN    ((99;;CCC;///=)))))rD   c                 0    |                      d           d S )Nz
killall.pyr6   rQ   s    r*   test_killallzTestExampleScripts.test_killall   rW   rD   c                 0    |                      d           d S )Nz	nettop.pyrr   rQ   s    r*   test_nettopzTestExampleScripts.test_nettop   rb   rD   c                 0    |                      d           d S )Nztop.pyrr   rQ   s    r*   test_topzTestExampleScripts.test_top   s    8$$$$$rD   c                 0    |                      d           d S )Nziotop.pyrr   rQ   s    r*   
test_iotopzTestExampleScripts.test_iotop   s    :&&&&&rD   c                     |                      dt          j                                                              }t	          t          j                              |v sJ d S )Nzpidof.py)r+   r   rl   rB   r$   r   rZ   )r@   outputs     r*   
test_pidofzTestExampleScripts.test_pidof   sP    ##J0@0@0E0E0G0GHH29;;6))))))rD   zWINDOWS onlyc                 0    |                      d           d S )Nzwinservices.pyrP   rQ   s    r*   test_winservicesz#TestExampleScripts.test_winservices   s    +,,,,,rD   c                 0    |                      d           d S )Nzcpu_distribution.pyrr   rQ   s    r*   test_cpu_distributionz(TestExampleScripts.test_cpu_distribution   s    011111rD   c                 ~    t          j                    st          j        d          S |                     d           d S )Nzno temperaturesztemperatures.py)r   sensors_temperaturesr>   ro   r+   rQ   s    r*   test_temperaturesz$TestExampleScripts.test_temperatures   s?    *,, 	2;0111,-----rD   c                 ~    t          j                    st          j        d          S |                     d           d S )Nzno fanszfans.py)r   sensors_fansr>   ro   r+   rQ   s    r*   	test_fanszTestExampleScripts.test_fans   s=    "$$ 	*;y)))9%%%%%rD   z
no batteryc                 0    |                      d           d S )Nz
battery.pyrP   rQ   s    r*   test_batteryzTestExampleScripts.test_battery        	<(((((rD   c                 0    |                      d           d S )Nz
sensors.pyrP   rQ   s    r*   test_sensorszTestExampleScripts.test_sensors   r   rD   N)+__name__
__module____qualname__staticmethodr+   r6   rC   r>   markskipifr   rN   rR   rT   rV   r[   r   r   usersr]   r_   ra   rd   rf   r   ri   rp   rs   ru   rw   ry   r|   r   r~   r   r   r   r
   r   r	   r   r   r    rD   r*   r   r   ,   s6       
   \   \
 
 
 [E	,77J J 87J, , ,& & &) ) )< < < [
9<6<>>'9*MM% % NM%$ $ $( ( () ) )* * * [O+ODD8 8 ED8* * *
) ) )( ( (% % %' ' '* * * [GN;;- - <;-2 2 2 [44_MM. . NM.
 [,,_EE& & FE&
 [//HH[K==) ) >= IH) [//HH[K==) ) >= IH) ) )rD   r   z&can't find scripts/internal/ directoryc                       e Zd Zed             Zd Zej                            e	 d          ej                            e
d          d                         ZdS )TestInternalScriptsc               #      K   t          j        t                    D ]>} |                     d          r't           j                            t          |           V  ?d S )Nr8   )r   r;   INTERNAL_SCRIPTS_DIRr<   r    r!   )rB   s    r*   lszTestInternalScripts.ls   s\      J344 	? 	?D}}U## ?gll#7>>>>>	? 	?rD   c                     |                                  D ]S}t          |d          5 }|                                }d d d            n# 1 swxY w Y   t          j        |           Td S r-   )r   r0   r1   r2   r3   )r@   r    r4   datas       r*   test_syntax_allz#TestInternalScripts.test_syntax_all   s    GGII 	 	DdV,,,  vvxx                             IdOOOO	 	s   A		A	A	znot on LINUXr   z	not on CIc                 t    |                                  D ]"}	 t          |           # t          $ r Y w xY wd S N)r   r   
SystemExit)r@   r    s     r*   test_import_allz#TestInternalScripts.test_import_all   s[     GGII 	 	D%d++++   	 	s   (
55N)r   r   r   r   r   r   r>   r   r   r   r   r   r   rD   r*   r   r      s        
 ? ? \?
   [E	.99[
;77  87 :9  rD   r   zcan't find setup.pyc                   |    e Zd Zd Zej                             ej        d           d          d             Z	dS )TestSetupScriptc                     t          t                    }t          j        t                    5  |                                 d d d            n# 1 swxY w Y   |                                t          j        k    sJ d S r   )	r   SETUP_PYr>   raisesr   setupget_versionr   __version__)r@   modules     r*   test_invocationzTestSetupScript.test_invocation   s    &x00]:&& 	 	LLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	!!##v'9999999s   AAA	python2.7zpython2.7 not installedr   c                    t          j        t          j        d          t          gt           j        t           j        d          }|                                \  }}|                                dk    sJ |rJ d|v sJ d|v sJ d S )Nr   T)stdoutstderruniversal_newlines   z$psutil no longer supports Python 2.7z'Latest version supporting Python 2.7 is)
subprocessPopenshutilwhichr   PIPEcommunicatewait)r@   pr   r   s       r*   test_python2zTestSetupScript.test_python2   s     \+&&1??#	
 
 
 vvxx1}}}}5????8FBBBBBBrD   N)
r   r   r   r   r>   r   r   r   r   r   r   rD   r*   r   r      sr        : : : [FL%%%.G   C C C C CrD   r   )#__doc__r2   r   r   rG   r   r>   r   r   r   r   psutil.testsr   r   r   r	   r
   r   r   r   r   r   r   r   r   r    r!   r   r   r   r   existsr   r   r   r   rD   r*   <module>r      s     



 				                          # # # # # # $ $ $ $ $ $ ( ( ( ( ( ( , , , , , , ) ) ) ) ) ) 1 1 1 1 1 1 # # # # # # ' ' ' ' ' ' ! ! ! ! ! ! $ $ $ $ $ $ ' ' ' ' ' ' . . . . . .            w||K<< 7<<*-- 2rw~~k222*   }) }) }) }) }) }) })	 })J ;rw~~&:;;;3       .  	 : /rw~~h///8M   C C C C Cn C C C C CrD   