o
    F+ i                     @   s  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jeoeje ddG dd deZ ejjeoeje ddG dd deZ!ejjeoeje ddG d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)shZinternalzsetup.pyzcan't find scripts/ directoryreasonc                   @   s  e Zd Zedd Zedd Zdd Zejj	e
 ddd	d
 Zdd Zdd Zdd Zdd Zejj	eo:e  dddd Zdd Zdd Zdd Zdd Zejj	e dddd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zejj	e  d-dd.d/ Z!d0d1 Z"ejj	e# ddd2d3 Z$ejj	e% ddd4d5 Z&ejj	e' ddejj	e( d6dd7d8 Z)ejj	e' ddejj	e( d6dd9d: Z*d;S )<TestExampleScriptsc              
   G   s   t  }|d tjt| } t| g|}z
t||d	 }W n t
y= } zdt|v r8t|W  Y d }~S  d }~ww |sDJ ||S )NZPSUTIL_DEBUG)envZAccessDenied)r   copypopospathjoinr   r   r   stripRuntimeErrorstr)exeargsr   cmdouterr r$   e/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/psutil/tests/test_scripts.pyassert_stdout1   s   
z TestExampleScripts.assert_stdoutc                 C   sP   t jt| } t| dd}| }W d    n1 sw   Y  t| d S Nutf8)encoding)r   r   r   r   openreadastparse)r   fsrcr$   r$   r%   assert_syntaxA   s
   
z TestExampleScripts.assert_syntaxc                 C   s^   t | }ttD ]#}|dr,dtj|d  |vr,tdtj	t|d  S q	d S )N.pyZtest_r   zno test defined for z script)
dirr   listdirr   endswithr   splitextpytestfailr   )selfZmethsnamer$   r$   r%   test_coverageH   s   
z TestExampleScripts.test_coveragez
POSIX onlyr   c                 C   sj   t tD ]-\}}}|D ]%}|dr1t j||}tjt |tj @ s1t	
|d    S qqd S )Nr1   z is not executable)r   walkr   r4   r   r   statS_IXUSRST_MODEr6   r7   )r8   rootdirsfilesfiler   r$   r$   r%   test_executableT   s   
z"TestExampleScripts.test_executablec                 C      |  d d S )Nzdisk_usage.pyr&   r8   r$   r$   r%   test_disk_usage]      z"TestExampleScripts.test_disk_usagec                 C   rD   )Nzfree.pyrE   rF   r$   r$   r%   	test_free`   rH   zTestExampleScripts.test_freec                 C   rD   )Nz
meminfo.pyrE   rF   r$   r$   r%   test_meminfoc   rH   zTestExampleScripts.test_meminfoc                 C      |  dtt  d S )Nzprocinfo.pyr&   r   r   getpidrF   r$   r$   r%   test_procinfof   s   z TestExampleScripts.test_procinfozno usersc                 C   rD   )Nzwho.pyrE   rF   r$   r$   r%   test_whoi      zTestExampleScripts.test_whoc                 C   rD   )Nzps.pyrE   rF   r$   r$   r%   test_psm   rH   zTestExampleScripts.test_psc                 C   rD   )Nz	pstree.pyrE   rF   r$   r$   r%   test_pstreep   rH   zTestExampleScripts.test_pstreec                 C   rD   )Nz
netstat.pyrE   rF   r$   r$   r%   test_netstats   rH   zTestExampleScripts.test_netstatc                 C   rD   )Nzifconfig.pyrE   rF   r$   r$   r%   test_ifconfigv   rH   z TestExampleScripts.test_ifconfignot supportedc                 C   rK   )Nzpmap.pyrL   rF   r$   r$   r%   	test_pmapy   s   zTestExampleScripts.test_pmapc                 C   s*   dt   jvrtdS | d d S )NZussrU   zprocsmem.py)r   ProcessZmemory_full_info_fieldsr6   skipr&   rF   r$   r$   r%   test_procsmem}   s   
z TestExampleScripts.test_procsmemc                 C   rD   )Nz
killall.pyr0   rF   r$   r$   r%   test_killall   rH   zTestExampleScripts.test_killallc                 C   rD   )Nz	nettop.pyr[   rF   r$   r$   r%   test_nettop   rH   zTestExampleScripts.test_nettopc                 C   rD   )Nztop.pyr[   rF   r$   r$   r%   test_top   rH   zTestExampleScripts.test_topc                 C   rD   )Nziotop.pyr[   rF   r$   r$   r%   
test_iotop   rH   zTestExampleScripts.test_iotopc                 C   s,   |  dt  }tt |v sJ d S )Nzpidof.py)r&   r   rW   r9   r   r   rM   )r8   outputr$   r$   r%   
test_pidof   s   zTestExampleScripts.test_pidofzWINDOWS onlyc                 C   rD   )Nzwinservices.pyrE   rF   r$   r$   r%   test_winservices   rP   z#TestExampleScripts.test_winservicesc                 C   rD   )Nzcpu_distribution.pyr[   rF   r$   r$   r%   test_cpu_distribution   rH   z(TestExampleScripts.test_cpu_distributionc                 C       t  s	tdS | d d S )Nzno temperaturesztemperatures.py)r   Zsensors_temperaturesr6   rY   r&   rF   r$   r$   r%   test_temperatures      
z$TestExampleScripts.test_temperaturesc                 C   rd   )Nzno fanszfans.py)r   Zsensors_fansr6   rY   r&   rF   r$   r$   r%   	test_fans   rf   zTestExampleScripts.test_fansz
no batteryc                 C   rD   )Nz
battery.pyrE   rF   r$   r$   r%   test_battery      zTestExampleScripts.test_batteryc                 C   rD   )Nz
sensors.pyrE   rF   r$   r$   r%   test_sensors   ri   zTestExampleScripts.test_sensorsN)+__name__
__module____qualname__staticmethodr&   r0   r:   r6   markskipifr   rC   rG   rI   rJ   rN   r   r   ZusersrO   rQ   rR   rS   rT   r   rV   rZ   r\   r]   r^   r_   ra   r   rb   rc   r
   re   r	   rg   r   r   rh   rj   r$   r$   r$   r%   r   ,   sN    







r   z&can't find scripts/internal/ directoryc                   @   sJ   e Zd Zedd Zdd Zejje	 ddejje
dddd	 Zd
S )TestInternalScriptsc                  c   s0    t tD ]} | drt jt| V  qd S )Nr1   )r   r3   INTERNAL_SCRIPTS_DIRr4   r   r   )r9   r$   r$   r%   ls   s   
zTestInternalScripts.lsc              	   C   sP   |   D ]!}t|dd}| }W d    n1 sw   Y  t| qd S r'   )rs   r*   r+   r,   r-   )r8   r   r.   datar$   r$   r%   test_syntax_all   s   
z#TestInternalScripts.test_syntax_allznot on LINUXr   z	not on CIc              	   C   s0   |   D ]}zt| W q ty   Y qw d S N)rs   r   
SystemExit)r8   r   r$   r$   r%   test_import_all   s   z#TestInternalScripts.test_import_allN)rk   rl   rm   rn   rs   ru   r6   ro   rp   r   r   rx   r$   r$   r$   r%   rq      s    
rq   zcan't find setup.pyc                   @   s4   e Zd Zdd Zejjed dddd Z	dS )	TestSetupScriptc                 C   sP   t t}tt |  W d    n1 sw   Y  | tjks&J d S rv   )	r   SETUP_PYr6   Zraisesrw   setupget_versionr   __version__)r8   moduler$   r$   r%   test_invocation   s
   
zTestSetupScript.test_invocation	python2.7zpython2.7 not installedr   c                 C   s`   t jtdtgt jt jd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whichrz   PIPEcommunicatewait)r8   pr   r   r$   r$   r%   test_python2   s   zTestSetupScript.test_python2N)
rk   rl   rm   r   r6   ro   rp   r   r   r   r$   r$   r$   r%   ry      s    ry   )#__doc__r,   r   r   r<   r   r6   r   r   r   r   Zpsutil.testsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   rr   rz   ro   rp   existsr   rq   ry   r$   r$   r$   r%   <module>   sR    