bgZ&dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl m Z ddl mZddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddl mZddl mZddl mZddl m Z ddl m!Z!ddl m"Z"ddl m#Z#ddl m$Z$ddl m%Z%ddl m&Z&ddl m'Z'ddl m(Z(ddl m)Z)ddl m*Z*dd l m+Z+Gd!d"e(Z,Gd#d$e(Z-Gd%d&e(Z.Gd'd(e(Z/ej0d)d*Z1Gd+d,e(Z2e j3ej45e' d-Gd.d/e(Z6e7d0krdd1l8m9Z9e9e:dSdS)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)shcfeZdZefdZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdS)TestSpecialMethodsc8tj|j}||}|d||d|jz||dt |z|dd|d||d|| | ||}|d||d|tj tjd tjtj 5tj}||}|d|jz||d ||d |dddn #1swxYwYtj tjd tjtj 5tj}||}|d|jz||d ||d |dddn #1swxYwYtj tjd tjtj 5tj}||}|d|jz||d |ddddS#1swxYwYdS)Nzpsutil.Processzpid=%sz name='%s'zname=u'zname='zstatus=z exitcode=zstatus='terminated'name side_effectzstatus='zombie'zname= terminated)psutilProcessspawn_testprocpidassertInstrr$replace assertNotIn terminatewaitrpatchobject ZombieProcessosgetpid NoSuchProcess AccessDenied)selffuncprs i/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/psutil/tests/test_misc.pytest_process__repr__z'TestSpecialMethods.test_process__repr__?s N4..004 5 5 DGG &*** h&*** kCMM1ii 844 6 6 6 i### a(((   DGG +Q/// k1%%% Z  v~v+1+? +L+LNN ) )  AQA MM(QU*A . . . MM+Q / / /   Wa ( ( (  ) ) ) ) ) ) ) ) ) ) ) ) ) ) )Z  v~v+1+? +L+LNN ) )  AQA MM(QU*A . . . MM, * * *   Wa ( ( (  ) ) ) ) ) ) ) ) ) ) ) ) ) ) )Z  v~v+1+>ry{{+K+KMM ) )  AQA MM(QU*A . . .   Wa ( ( (  ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s9A)HH  H  A)KKK/ANNNc<|tdS)N)r:)r>r-r9s r=test_process__str__z&TestSpecialMethods.test_process__str__cs !!s!+++++cn|ttjddS)Nzpsutil.Error()) assertEqualreprr(Errorr@s r=test_error__repr__z%TestSpecialMethods.test_error__repr__fs- flnn--/?@@@@@rBcn|ttjddS)N)rDr-r(rFr@s r=test_error__str__z$TestSpecialMethods.test_error__str__is, V\^^,,b11111rBc |ttjdd|ttjdddddS)NAz=psutil.NoSuchProcess(pid=321, msg='process no longer exists')r$msgr$rMz5psutil.NoSuchProcess(pid=321, name='name', msg='msg'))rDrEr(r7r@s r=test_no_such_process__repr__z/TestSpecialMethods.test_no_such_process__repr__ls  %c** + + K M M M  %cEBBB C C C E E E E ErBc |ttjdd|ttjdddddS)NrLz"process no longer exists (pid=321)r$rMrNmsg (pid=321, name='name'))rDr-r(r7r@s r=test_no_such_process__str__z.TestSpecialMethods.test_no_such_process__str__tsw  $S)) * * 0 2 2 2  $Sv5AAA B B ( * * * * *rBc |ttjdd|ttjddddddS)NrLzGpsutil.ZombieProcess(pid=321, msg="PID still exists but it's a zombie")r$@foor$ppidrMz?psutil.ZombieProcess(pid=321, ppid=320, name='name', msg='foo'))rDrEr(r4r@s r=test_zombie_process__repr__z.TestSpecialMethods.test_zombie_process__repr__|s  %c** + + * + + +  %cSeLLL M M M O O O O OrBc |ttjdd|ttjddddddS)NrLz,PID still exists but it's a zombie (pid=321)r$rTrUrVz$foo (pid=321, ppid=320, name='name'))rDr-r(r4r@s r=test_zombie_process__str__z-TestSpecialMethods.test_zombie_process__str__sy  $S)) * * : < < <  $SvCUKKK L L 2 4 4 4 4 4rBc |ttjdd|ttjdddddS)NrLzpsutil.AccessDenied(pid=321)r$rMrNz4psutil.AccessDenied(pid=321, name='name', msg='msg'))rDrEr(r8r@s r=test_access_denied__repr__z-TestSpecialMethods.test_access_denied__repr__s|  $S)) * * * , , ,  $Sv5AAA B B B D D D D DrBc |ttjdd|ttjdddddS)NrLz (pid=321)r$rMrNrQ)rDr-r(r8r@s r=test_access_denied__str__z,TestSpecialMethods.test_access_denied__str__sw  #C(( ) )      #Cf%@@@ A A ( * * * * *rBc |ttjdd|ttjdddddS)Nz?psutil.TimeoutExpired(seconds=5, msg='timeout after 5 seconds')rLr$r+r$zUpsutil.TimeoutExpired(pid=321, name='name', seconds=5, msg='timeout after 5 seconds'))rDrEr(TimeoutExpiredr@s r=test_timeout_expired__repr__z/TestSpecialMethods.test_timeout_expired__repr__s|  &q)) * * M O O O  &qc??? @ @ - . . . . .rBc |ttjdd|ttjdddddS)Nr`ztimeout after 5 secondsrLr$raz.timeout after 5 seconds (pid=321, name='name'))rDr-r(rbr@s r=test_timeout_expired__str__z.TestSpecialMethods.test_timeout_expired__str__sw  %a(( ) ) % ' ' '  %aSv>>> ? ? < > > > > >rBctj}tj}|||d|_|||||ddS)N)rrrU)r(r)rD_identassertNotEqual)r9p1p2s r=test_process__eq__z%TestSpecialMethods.test_process__eq__sk ^   ^   R     B### B&&&&&rBcttjtjg}|t |ddS)N)setr(r)rDlen)r9ss r=test_process__hash__z'TestSpecialMethods.test_process__hash__sF !!6>#3#34 5 5 Q#####rBN)__name__ __module__ __qualname__rEr>rArGrJrOrRrXrZr\r^rcrerkrqrBr=r"r"=s(,")")")")H,,,AAA222EEE***OOO444DDD***...>>>'''$$$$$rBr"c2eZdZdZdZdZdZdZdZdS)TestMiscctt}|D]}|dvr|ds t|-#t$rd|tjvrSt t|}|Y^|j3d|jvr| d|zYwxYwtjD]}| ||dS)N)longteststestPermissionErrorProcessLookupError_ deprecatedz%r not in psutil.__all__) dirr( startswith __import__ ImportError__all__getattr__doc__lowerfailr,)r9 dir_psutilr$funs r= test__all__zTestMisc.test__all__s[[  O OD...??3'' O Ot$$$$"OOO6>11%fd33;$HK3 ,CK4E4E4G4G G G"&)),F,M"N"NNO O N , ,D MM$ + + + + , ,sA/B25:B21B2c|ddtjDtjdS)N.c,g|]}t|Sru)r-).0xs r= z)TestMisc.test_version..s"G"G"Ga3q66"G"G"GrB)rDjoinr( version_info __version__r@s r= test_versionzTestMisc.test_versionsJ "G"G63F"G"G"GHH+ - - - - -rBctj}d|_|d|dS)N1rU)r(r)rUr/as_dict)r9r;s r=!test_process_as_dict_no_new_namesz*TestMisc.test_process_as_dict_no_new_namess: N    ,,,,,rBcfd}|tj|tj|tj|tj|tjd|tjtr tj dsn#ts|tj |tj|tjtj|tjdS)Nct&tjtj|tj|}tj|}||dSN)jsonloadsdumpspicklerD)retabr9s r=checkz*TestMisc.test_serialization..checksY 4:c??+++ S!!A QA   S! $ $ $ $ $rBr)intervalz/proc/diskstats)r(r)rvirtual_memory swap_memory cpu_timescpu_times_percentnet_io_countersrr5pathexistsrdisk_io_countersdisk_partitions disk_usagegetcwdusers)r9rs` r=test_serializationzTestMisc.test_serializations\ % % % % % fn&&(())) f#%%&&& f ""### f  !!! f&222333 f$&&'''  1(9:: 1  1f-//000 f$&&''' f ,,--- flnnrBctjtjdtj5}tj|jsJ dddn #1swxYwYtjtjdtjd5}tj|jsJ dddn #1swxYwYtjtjdt5}| t5tjdddn #1swxYwY|jsJ ddddS#1swxYwYdS)N create_timer%rm) rr2r3r(r)r8calledr4 ValueError assertRaises)r9meths r=test_ad_on_process_creationz$TestMisc.test_ad_on_process_creationsWZ  v~}+1+>@@ CG N   ;  ;                Z  v~}+1+?+B+BDD GK N   ;  ;                Z  v~}+577 :>"":.. ! !    ! ! ! ! ! ! ! ! ! ! ! ! ! ! !;  ;                    sYA!!A%(A%*CCCE-+E ? E- E E-E  E--E14E1cdtjdd5|t5}t t dddn #1swxYwY|dt|j ddddS#1swxYwYdS)Nzpsutil._psplatform.cext.versionz0.0.0 return_valuezversion conflict) rr2rrrr(r,r- exceptionr)r9cms r=test_sanity_version_checkz"TestMisc.test_sanity_version_checks8 Z1III I I"";// &2f%%% & & & & & & & & & & & & & & & MM,c",.?.?.E.E.G.G H H H  I I I I I I I I I I I I I I I I I Is4B%A B%A B%A =B%%B),B)N) rrrsrtrrrrrrrurBr=rwrwst,,,2------ B"IIIIIrBrwcDeZdZdZeZd dZdZdZdZdZ dZ d Z dS) TestMemoizeDecoratorcg|_dSrcallsr@s r=setUpzTestMemoizeDecorator.setUp's  rBNc RtdD]B}|}||jdifg||||CtdD]F}|d}||jdifdifg||||GtdD]M}|dd}||jdifdifdddifg||||N|t|jd||}|||||t|jd||jd dS) Nrurmrmbarr my docstring)rangerDrro cache_clearr)r9objexpected_retvalr~rs r= run_againstz TestMemoizeDecorator.run_against,sq 7 7A#%%C   TZ2r( 4 4 4*  o666q 7 7A#a&&C   TZ2r(UBK)@ A A A*  o666q 7 7A#aQ---C    b"Xr{UUAJ4GH J J J*  o666 TZ!,,, cee  &   S/ 2 2 2 TZ!,,, n55555rBc^tfd}|||ddS)Nc@j||fdSrrappendargskwargs baseclasss r=rUz/TestMemoizeDecorator.test_function..fooKs$ O " "D&> 2 2 22rBrr)r r)r9rUrs @r= test_functionz"TestMemoizeDecorator.test_functionJsL          b11111rBctGfdd}|||d||ddS)Nc$eZdZdZfdZdZdS),TestMemoizeDecorator.test_class..Foorc@j||fdSrr)r9rrrs r=__init__z5TestMemoizeDecorator.test_class..Foo.__init__Ys#&&f~66666rBcdS)Nrrur@s r=rz0TestMemoizeDecorator.test_class..Foo.bar\srrBN)rrrsrtrrrrsr=FoorUsC   7 7 7 7 7     rBrrr)r rrDrr9rrs @r= test_classzTestMemoizeDecorator.test_classTs              d333 b)))))rBc tGdd}||||t|t||t|dt|d|t|ddt|dd|t|dt|ddS)NceZdZdZdS)6TestMemoizeDecorator.test_class_singleton..BarcdSrru)r9rrs r=rz?TestMemoizeDecorator.test_class_singleton..Bar.__init__gsrBN)rrrsrtrrurBr=Barres#     rBrrmr)rUr)r assertIsrDidrh)r9rs r=test_class_singletonz)TestMemoizeDecorator.test_class_singletoncs,           cceeSSUU### CCEEBssuuII... CCFFRAZZ000 CCqMMM**Bss1!}}},=,=>>> Bss1vvJJ33q66 33333rBcrGfdd}|||jddS)Nc:eZdZeefdZdS)3TestMemoizeDecorator.test_staticmethod..Fooc@j||fdSrrrs r=rz7TestMemoizeDecorator.test_staticmethod..Foo.barr$&&f~666rrBN)rrrsrt staticmethodr rrsr=rrqsB      W\   rBrrrrrrs @r=test_staticmethodz&TestMemoizeDecorator.test_staticmethodpc            B77777rBcrGfdd}|||jddS)Nc:eZdZeefdZdS)2TestMemoizeDecorator.test_classmethod..Fooc@j||fdSrr)clsrrrs r=rz6TestMemoizeDecorator.test_classmethod..Foo.bar~rrBN)rrrsrt classmethodr rrsr=rr}sB      W[   rBrrrrrs @r=test_classmethodz%TestMemoizeDecorator.test_classmethod|rrBc>tfd}gtdD]I}|}dif}||||tdJtdD]J}|d}dif}||||tdKtdD]N}|dd}dddif}||||tdO||}dif}||||td ||jd dS) Nc6d||fS) foo docstringNr)rrrs r=rUz/TestMemoizeDecorator.test_original..foos! LL   &> !rBrrurmrrrrrr)r rrDrorr)r9rUr~rexpectedrs @r= test_originalz"TestMemoizeDecorator.test_originals  " " " "  " q , ,A#%%CBxH   S( + + +   SZZ + + + +q , ,A#a&&Cr{H   S( + + +   SZZ + + + +q , ,A#aQ---Cqz*H   S( + + +   SZZ + + + + cee8 h''' UQ''' o66666rBr) rrrsrtrtearDownrrrrrrrrurBr=rr%sH6666<222 * * * 4 4 4 8 8 8 8 8 8#7#7#7#7#7rBrc2eZdZdZdZdZdZdZdZdS)TestCommonModulecpGfdd}|}g|||tdg|j||||tdg|j||||tddS)Nc*eZdZefdZdS)9TestCommonModule.test_memoize_when_activated..Fooc2ddSrr)r9rs r=rUz=TestCommonModule.test_memoize_when_activated..Foo.foos T"""""rBN)rrrsrtr rUrsr=rr s9 # # # # #$ # # # #rBrrrm)rUrDrocache_activatecache_deactivate)r9rfrs @r=test_memoize_when_activatedz,TestCommonModule.test_memoize_when_activateds) # # # # # # # # # # CEE   UQ''' Q   UQ''' q!!!   UQ'''''rBcd}|td|ddi|td|dd|ddi|td|dd|dd i|td |dd|ddi|td |ddi|td |ddi|td |ddidS)Nc<tr|n|Sr)rupper)rps r=kz4TestCommonModule.test_parse_environ_block..ks '.177999Q .rBza=1rrz a=1b=2r2za=1b=rIz a=1b=2c=3zxxxa=1z a=1=b=2za=1b=2)rDr )r9rs r=test_parse_environ_blockz)TestCommonModule.test_parse_environ_blocks / / / ,W55!C&&# ( ( ( ,^<<!C&&#qqvvs3 5 5 5 ,];;!C&&#qqvvr2 4 4 4 ,-@AA!C&&#qqvvs3 5 5 5 ,\::QQsVVSMJJJ ,];;aaffc]KKK ,Z8811S663-HHHHHrBc |tjtrtjd5}d|_tjtrJ dddn #1swxYwYtjtjdt j5}trJ|jsJ dddn #1swxYwYtjtjdt j 5}trJtj|jsJ dddn #1swxYwYtjtjdt j 5}trJtj|jsJ ddddS#1swxYwYdS| t j5t jt j t j } | d|n#|wxYw ddddS#1swxYwYdS)Nzpsutil._common.socketFzpsutil._common.socket.socketr%z!psutil._common.socket.socket.bind)z::1r) addCleanupr rrr2has_ipv6socketerrorrgaierrorrAF_INET6 SOCK_STREAMbindclose)r9rpsocks r=test_supports_ipv6z#TestCommonModule.test_supports_ipv6s  1222 ?? !344 +" )+++(??**** + + + + + + + + + + + + + + +  % ' ' ':(. 666 9:(??***xx                % ' ' ':(.999 <=(??***)+++xx                 % ' ' '?(.999 <=(??***)+++xx                   ""6<00 ! !}V_f6HII!IIj)))JJLLLLDJJLLLLL  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sr+A;;A?A?9C  C$'C$-EEE-GGG=*I9(I=I9I((I99I=I=ctjt}t |sJt tj|rJt jdttj d5| tt|dddn #1swxYwYt jdttj d5| tt|dddn #1swxYwYt jdttj d5t |rJ dddn #1swxYwYt jdd5t |rJ ddddS#1swxYwYdS)Nzpsutil._common.os.statrUr%zpsutil._common.stat.S_ISREGFr)r5rabspath__file__r dirnamerr2OSErrorerrnoEPERMrEACCESENOENT)r9 this_files r=test_isfile_strictz#TestCommonModule.test_isfile_strictsGOOH-- Y''''' !;!;<<<<< Z0$+EK$?$?AAA A A   g}i @ @ @ A A A A A A A A A A A A A A AZ0$+EL%$@$@BBB A A   g}i @ @ @ A A A A A A A A A A A A A A AZ0$+EL%$@$@BBB 0 0$Y// / // / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0Z5E J J J 0 0$Y// / // / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0sH"CCC9"D''D+.D+ E??FF GGGctrddlm}nddlm}t|5}t ddddn #1swxYwY|}|ds J||d||t dd|t|5}t tddddn #1swxYwY|}|d||d |t|5}td d }d |_ t |dddn #1swxYwY|}|d ||d |dS) Nr)StringIOhelloz psutil-debugz.pyc.pyzthis is an errorzignoring ValueErrorz'this is an error'rz no such filez/foo) rior0rrgetvaluerr,r&r.rr(filename)r9r0rrMexcs r= test_debugzTestCommonModule.test_debugs  * # # # # # # # ) ) ) ) ) ) XXZZ ( ( A 'NNN               jjll~~n--22s22- gs### h&&vu55s;;;XXZZ ( ( 2A */00 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2jjll +S111 *C000XXZZ ( ( A!^,,C!CL #JJJ               jjll nc*** fc"""""s5AA A "D  DD-'F  F$'F$cd|}t|d5}|ddddn #1swxYwY|t |d|t |d|tt|dz|tt |dz|t |dzdd|t |dzdddS)NwtrUsfooz-invalidr)fallback) get_testfnopenwriterDrrrr)r9testfnrs r= test_cat_bcatzTestCommonModule.test_cat_bcat.sL"" &$   1 GGENNN                Ve,,, fv... +S&:2EFFF +T6J3FGGG Vj05AAA5III fz1EBBBEJJJJJsAA A N) rrrsrtrrr#r.r7r?rurBr=r r sw(((6III&!!!!!!F000 ###: K K K K KrBr rUza b cceZdZdZeZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd Zeje ddZdS)TestWrapNumbersc,tjdSr)rrr@s r=rzTestWrapNumbers.setUpDs """""rBctdtdddi}|t|d|dSNdisk1r`disk_iontrDrr9inputs r=test_first_callzTestWrapNumbers.test_first_callIs<"Q1++& eY77?????rBcdtdddi}|t|d||t|d|dSrDrGrIs r=test_input_hasnt_changedz(TestWrapNumbers.test_input_hasnt_changedMs\"Q1++& eY77??? eY77?????rBcdtdddi}|t|d|dtdddi}|t|d|dtdddi}|t|d|dtdddi}|t|d|dS) NrEr`rF rGrIs r=test_increase_but_no_wrapz)TestWrapNumbers.test_increase_but_no_wrapRs"Q1++& eY77???"RR..) eY77???"RR..) eY77???"RR..) eY77?????rBc dtdddi}|t|d|dtdddi}|t|ddtdddidtdddi}|t|ddtdddidtdddi}|t|ddtdddidtdddi}|t|ddtddd idtdddi}|t|ddtddd idtd ddi}|t|ddtd dd idtd ddi}|t|ddtddd idtd ddi}|t|ddtddd idS) NrEdrFrOnZrQ2(rGrIs r= test_wrapzTestWrapNumbers.test_wrap\s"S#s++, eY77???"S#r**+ eY77!2c3#4#45 7 7 7"S#r**+ eY77!2c3#4#45 7 7 7"S#r**+ eY77!2c3#4#45 7 7 7"S#r**+ eY77!2c3#4#45 7 7 7"S#r**+ eY77!2c3#4#45 7 7 7"Rb//* eY77!2c3#4#45 7 7 7"Rb//* eY77!2c3#4#45 7 7 7"Rb//* eY77!2c3#4#45 7 7 7 7 7rBcpdtdddi}|t|d|tdddtdddd}|t|d|dtdddi}|t|d|dS)NrEr`rFrEdisk2rGrIs r=test_changing_keysz"TestWrapNumbers.test_changing_keyss"Q1++& eY77???Q1++Q1++'' eY77???"Q1++& eY77?????rBc tdddtdddd}|t|d|tdddtdddd}|t|dtdddtdddddtdddi}|t|d|tdddtdddd}|t|d|tdddtdddd}|t|d|tdddtdddd}|t|dtdddtdddddS)Nr[rVrarFrOrWrErGrIs r=test_changing_keys_w_wrapz)TestWrapNumbers.test_changing_keys_w_wrapsRR..S#s++-- eY77???RR..S#r**,, eY77#%b"b>>#%c3#4#466 7 7 7"RR..) eY77???RR..S#s++-- eY77???RR..S#s++-- eY77???RR..S#r**,, eY77#%b"b>>#%c3#4#466 7 7 7 7 7rBcddddd}|t|d||t|d|ddddd}t|d}||dd d dS) N) i,#Rȷ) iritUiirrrrc) 6rpi$iNrrSi) iU ii"r\ii4iii\)nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n1p3rF) rVrhrirjrkrlrmrnrorsri)rDr)r9douts r=test_real_datazTestWrapNumbers.test_real_datasNCIM O O a33Q777 a33Q777NCIM O O1i(( Y*C00000rBc&dtdddi}t|dtj}||dd|i||ddii||ddiidS)NrEr`rFrrmrrHr cache_inforDr9rJcaches r=test_cache_first_callz%TestWrapNumbers.test_cache_first_calls"Q1++&UI&&&')) qIu#5666 qIr?333 qIr?33333rBctdtdddi}t|ddtdddi}t|dtj}||dd|i||ddddddi||ddiidS) NrEr`rFrOrrm)rEr)rErmrErrr{r}s r=test_cache_call_twicez%TestWrapNumbers.test_cache_call_twices"Q1++&UI&&&"RR..)UI&&&')) qIu#5666  !H qKK L N N N qIr?33333rBc`dtdddi}t|ddtdddi}t|dtj}|dd|i|ddddddi|dddt d giifd }dtdddi}t|dtj}|dd|i|dtddd i}t|dtj}|dd|i|dtddd i}t|dtj}|dd|i|ddddd di|dddt d giidS)NrErVrFrOrrmrrrctj}|ddddddi|dddtdgiidS) NrmrFrrVrrrEr)rr|rDrn)r~r9s r=check_cache_infoz9TestWrapNumbers.test_cache_wrap..check_cache_infos +--E   a1A+.001 2 2 2   U1X''3 ~3F3F)GH J J J J JrBrXrQrY)rHrr|rDrn)r9rJr~rs` r=test_cache_wrapzTestWrapNumbers.test_cache_wraps"S#s++,UI&&&"S#r**+UI&&&')) qIu#5666  !H qMM N P P P qIl^9L9L/M#NOOO J J J J J"S#r**+UI&&&')) qIu#5666"S#r**+UI&&&')) qIu#5666"S#r**+UI&&&')) qIu#5666  !H qMM N P P P qIl^9L9L/M#NOOOOOrBcdtdddi}t|dtdddtdddd}t|dtj}||dd|i||ddddddi||d diidS) NrEr`rFr`rarrmrrr{r}s r=test_cache_changing_keysz(TestWrapNumbers.test_cache_changing_keyss"Q1++&UI&&&Q1++Q1++''UI&&&')) qIu#5666  !H qKK L N N N qIr?33333rBc8dtdddi}t|dt|dtjd|tjiiiftjdtjddS)NrEr`rFz?!?)rHrrrDr|rIs r=test_cache_clearz TestWrapNumbers.test_cache_clear s"Q1++&UI&&&UI&&& +++ 022RRLAAA +++ '''''rB not supportedctjrtjs|dStjtjt j}|D].}|d||d|/tjt j}|D].}|d||d|/tjt j}| |iiifdS)Nzno disks or NICs availablezpsutil.disk_io_counterszpsutil.net_io_counters) r(rrskipTestrr|r,rr/rD)r9cachesr~s r=test_cache_clear_public_apisz,TestWrapNumbers.test_cache_clear_public_apissD&(( ?0F0H0H ?==!=>> >!!!   (** ; ;E MM3U ; ; ; MM2E : : : :++---(** ? ?E MM2E : : :   6 > > > >**,,,(** "b".....rBN)rrrsrtrrrKrMrTr^rdrfryrrrrrunittestskipIfrrrurBr=rArABs###H@@@@@@ @@@#7#7#7J @ @ @777< 1 1 1"444 4 4 4.P.P.P` 4 4 4(((X_,,o>>//?>///rBrAzcan't locate scripts directoryceZdZdZedZedZdZej e ddZ dZ dZ d Zd Zej eoej d d Zd ZdZdZdZej e ddZdZdZdZdZdZdZej e ddZ!dZ"ej e# ddZ$ej e% ddZ&ej e' dej e( ddZ)ej e' dej e( dd Z*d!S)" TestScriptsz-Tests for scripts in the "scripts" directory.c|dtdtjt |z}t |g}|D]}|| t|fi| }n8#t$r+}dt|vrt|cYd}~Sd}~wwxYw|s J||S)Nenvz%sr8) setdefaultrr5rrrrrr strip RuntimeErrorr-)exerrcmdargrxerrs r= assert_stdoutzTestScripts.assert_stdout6s%000RW\\+s3333  C JJsOOOO S##F##))++CC   S))3xx   Cs s$(B B=B81B=7B88B=c(tjt|}trt |dd}nt |d}|5|}dddn #1swxYwYtj|dS)Nrtutf8)encoding) r5rrrrr<readastparse)rrsrcs r= assert_syntaxzTestScripts.assert_syntaxGsgll;,,  S$000AAS$A   &&((C                #sA33A7:A7cPt|}tjtD]|}|dredtj|dz|vr;|dtjt|z}dS)Nr2test_rzno test defined for %r script) rr5listdirrendswithrsplitextrr)r9methsr$s r= test_coveragezTestScripts.test_coverageRsD J{++ G GD}}U## GRW--d33A66eCC))$C&(gll;&E&E%FGGG  G GrBz POSIX onlycLtjtD]\}}}|D]}|dritj||}t jtj|t jzs| d|zdS)Nr2z%r is not executable) r5walkrrrrstatS_IXUSRST_MODEr)r9rootdirsfilesfilers r=test_executablezTestScripts.test_executable\s!#!5!5 G G D$ G G==''G7<<d33D<"'$-- *EEG"ii(>(EFFF  G G GrBc0|ddS)Nz disk_usage.pyrr@s r=test_disk_usagezTestScripts.test_disk_usagees ?+++++rBc0|ddS)Nzfree.pyrr@s r= test_freezTestScripts.test_freehs 9%%%%%rBc0|ddS)Nz meminfo.pyrr@s r= test_meminfozTestScripts.test_meminfok <(((((rBcn|dttjdS)Nz procinfo.pyrr-r5r6r@s r= test_procinfozTestScripts.test_procinfons, =#bikk*:*:;;;;;rBzno usersc0|ddS)Nzwho.pyrr@s r=test_whozTestScripts.test_whoqs 8$$$$$rBc0|ddS)Nzps.pyrr@s r=test_pszTestScripts.test_psus 7#####rBc0|ddS)Nz pstree.pyrr@s r= test_pstreezTestScripts.test_pstreex ;'''''rBc0|ddS)Nz netstat.pyrr@s r= test_netstatzTestScripts.test_netstat{rrBc0|ddS)Nz ifconfig.pyrr@s r= test_ifconfigzTestScripts.test_ifconfig~s =)))))rBrcn|dttjdS)Nzpmap.pyrr@s r= test_pmapzTestScripts.test_pmaps, 9c")++&6&677777rBcdtjjvr|d|ddS)Nussrz procsmem.py)r(r)memory_full_info_fieldsrrr@s r= test_procsmemzTestScripts.test_procsmemsP ((99;;C C C--00 0 =)))))rBc0|ddS)Nz killall.pyrr@s r= test_killallzTestScripts.test_killallrrBc0|ddS)Nz nettop.pyrr@s r= test_nettopzTestScripts.test_nettoprrBc0|ddS)Nztop.pyrr@s r=test_topzTestScripts.test_tops 8$$$$$rBc0|ddS)Nziotop.pyrr@s r= test_iotopzTestScripts.test_iotops :&&&&&rBc|dtj}|t t j|dS)Nzpidof.py)rr(r)r$r,r-r5r6)r9outputs r= test_pidofzTestScripts.test_pidofsS##J0@0@0E0E0G0GHH c")++&&/////rBz WINDOWS onlyc0|ddS)Nzwinservices.pyrr@s r=test_winserviceszTestScripts.test_winservicess +,,,,,rBc0|ddS)Nzcpu_distribution.pyrr@s r=test_cpu_distributionz!TestScripts.test_cpu_distributions 011111rBctjs|d|ddS)Nzno temperaturesztemperatures.py)r(sensors_temperaturesrrr@s r=test_temperatureszTestScripts.test_temperaturessA*,, - MM+ , , , ,-----rBctjs|d|ddS)Nzno fanszfans.py)r( sensors_fansrrr@s r= test_fanszTestScripts.test_fanss?"$$ % MM) $ $ $ 9%%%%%rBz no batteryc0|ddS)Nz battery.pyrr@s r= test_batteryzTestScripts.test_battery <(((((rBc0|ddS)Nz sensors.pyrr@s r= test_sensorszTestScripts.test_sensorsrrBN)+rrrsrtrrrrrrrrrrrrrrr(rrrrrrrrrrrrrrrrrrrrrrrrrrurBr=rr1s87\ \GGGX_Y --GG.-G,,,&&&)))<<<X_Z6  $6 CC%%DC%$$$((()))***X_(/::88;:8*** )))(((%%%'''000X_[.11--21-222X_11?CC..DC. X_))?;;&&<;& X_,,o>>X__l33))43?>)X_,,o>>X__l33))43?>)))rBr__main__) run_from_name);rr collectionsr)rr5rrrrr( psutil.testsrrrpsutil._commonrrrr r r r r rpsutil._compatrrrrrrrrrrrrrrrrrr r"rwrr  namedtuplerHrArrrrrrpsutil.tests.runnerrr&rurBr=rs^    ((((((""""""111111......(((((('''''',,,,,,******!!!!!!######$$$$$$((((((,,,,,,,,,,,,))))))111111######''''''$$$$$$''''''&&&&&&{${${${${${${${$F]I]I]I]I]I~]I]I]IJF7F7F7F7F7>F7F7F7RIKIKIKIKIK~IKIKIKb[E7++g/g/g/g/g/ng/g/g/^RW^^K000133B)B)B)B)B).B)B)33B)J z111111M(rB