0i*dZddlZddlZddlZddlZddlZddlZddlmZddlm Z ddlm Z ddl m Z ddl m Z ddl mZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZej2j5edZej2j5edZej:j=e xrej2j?e dGddeZ ej:j=e xrej2j?e dGddeZ!ej:j=e xrej2j?e dGddeZ"y) zTest 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)shinternalzsetup.pyzcan't find scripts/ directoryreasoncveZdZedZedZdZejje ddZ dZ dZ d Zd Zejjexrej$ d d Zd ZdZdZdZejje ddZdZdZdZdZdZdZejje ddZ!dZ"ejje# ddZ$ejje% ddZ&ejje' dejje( ddZ)ejje' dejje( dd Z*y!)"TestExampleScriptscTtj}|jdtjj t |}t|g|} t||j}|sJ||S#t$r#}dt|vrt|cYd}~Sd}~wwxYw)N PSUTIL_DEBUG)env AccessDenied) r copypopospathjoinrr rstrip RuntimeErrorstr)exeargsrcmdouterrs J/opt/hc_python/lib64/python3.12/site-packages/psutil/tests/test_scripts.py assert_stdoutz TestExampleScripts.assert_stdout1s!!# ggll;,3&& Sc"((*C Cs  S)3x  s$A;; B'B"B'!B""B'ctjjt|}t |d5}|j }dddt jy#1swYxYwNutf8)encoding)rr r!ropenreadastparse)r%fsrcs r* assert_syntaxz TestExampleScripts.assert_syntaxAsFggll;, # '1&&(C( #( 's A!!A*cBt|}tjtD]x}|j dsdtj j |dz|vs=tjdtj jt|dcSy)N.pytest_rzno test defined for z script) dirrlistdirrendswithr splitextpytestfailr!)selfmethsnames r* test_coveragez TestExampleScripts.test_coverageHs~D JJ{+D}}U#RWW--d3A66eC!;;GGLLd;>gG ,z POSIX onlyrc`tjtD]\}}}|D]}|jdstjj ||}t jtj |t jzrmtj|dccSy)Nr8z is not executable) rwalkrr<r r!statS_IXUSRST_MODEr>r?)r@rootdirsfilesfiler s r*test_executablez"TestExampleScripts.test_executableTsz!#!5 D$=='77<<d3D<<"''$- *EE%{{dX5G+HII "6rDc&|jdy)Nz disk_usage.pyr+r@s r*test_disk_usagez"TestExampleScripts.test_disk_usage]s ?+rDc&|jdy)Nzfree.pyrPrQs r* test_freezTestExampleScripts.test_free`s 9%rDc&|jdy)Nz meminfo.pyrPrQs r* test_meminfozTestExampleScripts.test_meminfoc <(rDc^|jdttjy)Nz procinfo.pyr+r$rgetpidrQs r* test_procinfoz TestExampleScripts.test_procinfofs =#biik*:;rDzno usersc&|jdy)Nzwho.pyrPrQs r*test_whozTestExampleScripts.test_whois 8$rDc&|jdy)Nzps.pyrPrQs r*test_pszTestExampleScripts.test_psms 7#rDc&|jdy)Nz pstree.pyrPrQs r* test_pstreezTestExampleScripts.test_pstreep ;'rDc&|jdy)Nz netstat.pyrPrQs r* test_netstatzTestExampleScripts.test_netstatsrWrDc&|jdy)Nz ifconfig.pyrPrQs r* test_ifconfigz TestExampleScripts.test_ifconfigvs =)rD not supportedc^|jdttjy)Nzpmap.pyrYrQs r* test_pmapzTestExampleScripts.test_pmapys 9c"))+&67rDcdtjjjvrt j dS|j dy)Nussrgz procsmem.py)rProcessmemory_full_info_fieldsr>skipr+rQs r* test_procsmemz TestExampleScripts.test_procsmem}s= (99;CC C;;/ / =)rDc&|jdy)Nz killall.pyr6rQs r* test_killallzTestExampleScripts.test_killallrWrDc&|jdy)Nz nettop.pyrrrQs r* test_nettopzTestExampleScripts.test_nettoprbrDc&|jdy)Nztop.pyrrrQs r*test_topzTestExampleScripts.test_tops 8$rDc&|jdy)Nziotop.pyrrrQs r* test_iotopzTestExampleScripts.test_iotops :&rDc|jdtjj}t t j |vsJy)Nzpidof.py)r+rrlrBr$rrZ)r@outputs r* test_pidofzTestExampleScripts.test_pidofs=##J0@0E0E0GH299;6)))rDz WINDOWS onlyc&|jdy)Nzwinservices.pyrPrQs r*test_winservicesz#TestExampleScripts.test_winservicess +,rDc&|jdy)Nzcpu_distribution.pyrrrQs r*test_cpu_distributionz(TestExampleScripts.test_cpu_distributions 01rDcxtjstjdS|j dy)Nzno temperaturesztemperatures.py)rsensors_temperaturesr>ror+rQs r*test_temperaturesz$TestExampleScripts.test_temperaturess-**,;;01 1 ,-rDcxtjstjdS|j dy)Nzno fanszfans.py)r sensors_fansr>ror+rQs r* test_fanszTestExampleScripts.test_fanss+""$;;y) ) 9%rDz no batteryc&|jdy)Nz battery.pyrPrQs r* test_batteryzTestExampleScripts.test_battery <(rDc&|jdy)Nz sensors.pyrPrQs r* test_sensorszTestExampleScripts.test_sensorsrrDN)+__name__ __module__ __qualname__ staticmethodr+r6rCr>markskipifrrNrRrTrVr[rrusersr]r_rardrfrrirprsrurwryr|rr~rr rr rr rrrrDr*rr,s%     [[E ,7J8J,&)< [[ 9<6<<>'9*M%N%$()* [[O+OD8E8* )(%'* [[G N;-<-2 [[44_M.N.  [[,,_E&F&  [[//H [[K =)>I) [[//H [[K =)>I)rDrz&can't find scripts/internal/ directoryceZdZedZdZejje dejje ddZ y)TestInternalScriptsc#KtjtD]:}|jdstjj t|<yw)Nr8)rr;INTERNAL_SCRIPTS_DIRr<r r!)rBs r*lszTestInternalScripts.lss<JJ34D}}U#ggll#7>>5s .A)Ac|jD]=}t|d5}|j}dddtj?y#1swY!xYwr-)rr0r1r2r3)r@r r4datas r*test_syntax_allz#TestInternalScripts.test_syntax_alls@GGIDdV,vvx- IIdO,,s AA z not on LINUXrz not on CIcd|jD]} t|y#t$rYwxYwN)rr SystemExit)r@r s r*test_import_allz#TestInternalScripts.test_import_alls5GGID %d+  s # //N) rrrrrrr>rrrrrrrDr*rrsa ??  [[E .9 [[ ;78:rDrzcan't find setup.pyczeZdZdZej j ejd ddZ y)TestSetupScriptctt}tjt5|j ddd|j tjk(sJy#1swY-xYwr) rSETUP_PYr>raisesrsetup get_versionr __version__)r@modules r*test_invocationzTestSetupScript.test_invocationsL&x0 ]]: & LLN'!!#v'9'9999' &s A&&A/ python2.7zpython2.7 not installedrctjtjdtgtj tj d}|j \}}|jdk(sJ|rJd|vsJd|vsJy)NrT)stdoutstderruniversal_newlinesz$psutil no longer supports Python 2.7z'Latest version supporting Python 2.7 is) subprocessPopenshutilwhichrPIPE communicatewait)r@prrs r* test_python2zTestSetupScript.test_python2s}    \\+ & 1????#   vvx1}}z5???8FBBBrDN) rrrrr>rrrrrrrDr*rrsE:  [[ FLL %%.GCCrDr)#__doc__r2rrrGrr>rrrr psutil.testsrrrr r r r r rrrrrr r!rrrrexistsrrrrrDr*rs^  #$(,)1#'!$'.ww||K< 77<<* -2rww~~k22 *})}) })J;rww~~&:;; 3. :/rww~~h//8MCnCCrD