gfodZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddl m Z ddlmZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddl Z ddlZ e j'dddkZ(Gdde Z)ej*d d!Z+Gd"d#e Z,e&j-ej./e$ d$Gd%d&e Z0e1d'krdd(l2m3Z3e3e4dSdS))z Miscellaneous tests. N)LINUX)POSIX)WINDOWS)memoize)memoize_when_activated) supports_ipv6) wrap_numbers)PY3)APPVEYOR) CI_TESTING) HAS_BATTERY)HAS_MEMORY_MAPS)HAS_NET_IO_COUNTERS)HAS_SENSORS_BATTERY)HAS_SENSORS_FANS)HAS_SENSORS_TEMPERATURES)import_module_by_path)mock)PsutilTestCase) PYTHON_EXE) reload_module)ROOT_DIR) SCRIPTS_DIR)sh)unittest) ceZdZefdZdZefdZefdZefdZefdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdZdZdS)TestMiscc8tj|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 x/builddir/build/BUILD/imunify360-venv-2.3.5/opt/imunify360/venv/lib64/python3.11/site-packages/psutil/tests/test_misc.pytest_process__repr__zTestMisc.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)r8)r<r+r7s r;test_process__str__zTestMisc.test_process__str__as !!s!+++++cL|ttjdd|ttjddd|ttjddddS)NAz7psutil.NoSuchProcess process no longer exists (pid=321)foor"zCpsutil.NoSuchProcess process no longer exists (pid=321, name='foo')msgzpsutil.NoSuchProcess foo) assertEqualreprr&r5r7r8s r;test_no_such_process__repr__z%TestMisc.test_no_such_process__repr__ds  %c** + + E G G G  %c666 7 7      %cu555 6 6 & ( ( ( ( (r@c |ttjdd|ttjddd|ttjdddd|ttjdd d dS) NrBzEpsutil.ZombieProcess process still exists but it's a zombie (pid=321)rCrDzQpsutil.ZombieProcess process still exists but it's a zombie (pid=321, name='foo'))r"ppidzYpsutil.ZombieProcess process still exists but it's a zombie (pid=321, name='foo', ppid=1)rEzpsutil.ZombieProcess foo)rGrHr&r2rIs r;test_zombie_process__repr__z$TestMisc.test_zombie_process__repr__ps  %c** + +      %c666 7 7 $ % % %  %cA>>> ? ? , - - -  %cu555 6 6 & ( ( ( ( (r@cL|ttjdd|ttjddd|ttjddddS)NrBzpsutil.AccessDenied (pid=321)rCrDz)psutil.AccessDenied (pid=321, name='foo')rEzpsutil.AccessDenied foo)rGrHr&r6rIs r;test_access_denied__repr__z#TestMisc.test_access_denied__repr__s  $S)) * * + - - -  $Su555 6 6 7 9 9 9  $Se444 5 5 % ' ' ' ' 'r@c N|ttjdd|ttjddd|ttjdddddS) NrBz/psutil.TimeoutExpired timeout after 321 secondso)r)z9psutil.TimeoutExpired timeout after 321 seconds (pid=111)rC)r)r"zEpsutil.TimeoutExpired timeout after 321 seconds (pid=111, name='foo'))rGrHr&TimeoutExpiredrIs r;test_timeout_expired__repr__z%TestMisc.test_timeout_expired__repr__s  &s++ , , = ? ? ?  &s444 5 5 G I I I  &s%@@@ A A $ % % % % %r@ctj}tj}|||d|_|||||ddS)N)rrrC)r&r'rG_identassertNotEqual)r7p1p2s r;test_process__eq__zTestMisc.test_process__eq__sk ^   ^   R     B### B&&&&&r@cttjtjg}|t |ddS)NrL)setr&r'rGlen)r7ss r;test_process__hash__zTestMisc.test_process__hash__sF !!6>#3#34 5 5 Q#####r@ctt}|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*)r7 dir_psutilr"funs r; test__all__zTestMisc.test__all__s[[  I ID...??3'' I It$$$$"III6>11%fd33;$HK3 ,CK4E4E4G4G G G II&@4&GHHHI I N , ,D MM$ + + + + , ,sA/B25:B21B2c|ddtjDtjdS)N.c,g|]}t|S)r+).0xs r; z)TestMisc.test_version..s"G"G"Ga3q66"G"G"Gr@)rGjoinr& version_info __version__r>s r; test_versionzTestMisc.test_versionsJ "G"G63F"G"G"GHH+ - - - - -r@ctj}d|_|d|dS)N1rC)r&r'rCr-as_dict)r7r9s r;!test_process_as_dict_no_new_namesz*TestMisc.test_process_as_dict_no_new_namess: N    ,,,,,r@c>tfd}gtdD]I}|}dif}||||tdJtdD]J}|d}dif}||||tdKtdD]N}|dd}dddif}||||tdO||}dif}||||td ||jd dS) Nc6d||fS) foo docstringNappend)argskwargscallss r;rCz"TestMisc.test_memoize..foos! LL   &> !r@rrwrL)rL)barrrr)rrangerGr] cache_clearrn)r7rCryretexpectedrs @r; test_memoizezTestMisc.test_memoizes  " " " "  " q , ,A#%%CBxH   S( + + +   SZZ + + + +q , ,A#a&&Cr{H   S( + + +   SZZ + + + +q , ,A#aQ---Cqz*H   S( + + +   SZZ + + + + cee8 h''' UQ''' o66666r@cpGfdd}|}g|||tdg|j||||tdg|j||||tddS)Nc*eZdZefdZdS)1TestMisc.test_memoize_when_activated..Fooc2ddSNr)r7rs r;rCz5TestMisc.test_memoize_when_activated..Foo.foos T"""""r@N)__name__ __module__ __qualname__rrC)rsr;Foors9 # # # # #$ # # # #r@rrrL)rCrGr]cache_activatecache_deactivate)r7rfrs @r;test_memoize_when_activatedz$TestMisc.test_memoize_when_activateds) # # # # # # # # # # CEE   UQ''' Q   UQ''' q!!!   UQ'''''r@cddlm}d}||d|ddi||d|dd|dd i||d |dd|dd i||d |dd|dd i||d |ddi||d|ddi||d|ddidS)Nr)parse_environ_blockc<tr|n|Sr)rupper)r^s r;kz,TestMisc.test_parse_environ_block..ks '.177999Q .r@za=1arz a=1b=2b2za=1b=z a=1b=2c=3zxxxa=1z a=1=b=2za=1b=2)psutil._commonrrG)r7rrs r;test_parse_environ_blockz!TestMisc.test_parse_environ_blocks666666 / / / ,,W55!C&&# ( ( ( ,,^<<!C&&#qqvvs3 5 5 5 ,,];;!C&&#qqvvr2 4 4 4 ,,-@AA!C&&#qqvvs3 5 5 5 ,,\::QQsVVSMJJJ ,,];;aaffc]KKK ,,Z8811S663-HHHHHr@c|tjtrtjd5}d|_tjtrJ dddn #1swxYwYtjtjdt j5}trJ|jsJ dddn #1swxYwYtjtjdt j 5}trJtj|jsJ dddn #1swxYwYtjtjdt j 5}trJtj|jsJ ddddS#1swxYwYdS| t5t jt j t j } |d|n#|wxYw ddddS#1swxYwYdS)Nzpsutil._common.socketFzpsutil._common.socket.socketr#z!psutil._common.socket.socket.bind)z::1r) addCleanuprrrr0has_ipv6socketerrorcalledgaierror assertRaises ExceptionAF_INET6 SOCK_STREAMbindclose)r7r^socks r;test_supports_ipv6zTestMisc.test_supports_ipv6s  1222 ?? !344 +" )+++(??**** + + + + + + + + + + + + + + +  % ' ' ':(. 666 9:(??***xx                % ' ' ':(.999 <=(??***)+++xx                 % ' ' '?(.999 <=(??***)+++xx                   ""9-- ! !}V_f6HII!IIj)))JJLLLLDJJLLLLL  ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !sr+A;;A?A?9C  C$'C$-EEE-GGG8*I4#I 8I4 I##I44I8;I8crddlm}tjt }||sJ|tj|rJtjdttj d5| t||dddn #1swxYwYtjdttj d5| t||dddn #1swxYwYtjdttjd5||rJ dddn #1swxYwYtjdd5||rJ ddddS#1swxYwYdS) Nr) isfile_strictzpsutil._common.os.statrCr#zpsutil._common.stat.S_ISREGF return_value)rrr3pathabspath__file__dirnamerr0OSErrorerrnoEPERMrEACCESENOENT)r7r this_files r;test_isfile_strictzTestMisc.test_isfile_strict=s000000GOOH-- }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 0sHB99B=B=2DD"DE//E36E3F,,F03F0cfd}|tj|tj|tj|tj|tjd|tjtr tj dsn#ts|tj |tj|tjtj|tjdS)Nct&tjtj|tj|}tj|}||dSr)jsonloadsdumpspicklerG)rrrr7s r;checkz*TestMisc.test_serialization..checkOsY 4:c??+++ S!!A QA   S! $ $ $ $ $r@r)intervalz/proc/diskstats)r&r'rvirtual_memory swap_memory cpu_timescpu_times_percentnet_io_countersrr3rexistsr disk_io_countersdisk_partitions disk_usagegetcwdusers)r7rs` r;test_serializationzTestMisc.test_serializationNs\ % % % % % fn&&(())) f#%%&&& f ""### f  !!! f&222333 f$&&'''  1(9:: 1  1f-//000 f$&&''' f ,,--- flnnr@ctjtd}tr4tj|s|dSt|}|t|j | | tjdS)Nzsetup.pyzcan't find setup.py)r3rr{rr rskipTestrr SystemExitsetuprG get_versionr&r})r7setup_pymodules r;test_setup_scriptzTestMisc.test_setup_scriptes7<<*55  8bgnnX66 8==!677 7&x00 *fl333 ++--v/ABBBBBr@ctjtjdtj5}tj|jsJ dddn #1swxYwYtjtjdtjd5}tj|jsJ dddn #1swxYwYtjtjdt5}| t5tjdddn #1swxYwY|jsJ ddddS#1swxYwYdS)N create_timer#rL) rr0r1r&r'r6rr2 ValueErrorr)r7meths r;test_ad_on_process_creationz$TestMisc.test_ad_on_process_creationmsWZ  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.0rzversion conflict) rr0rrkrr&r*r+ exceptionro)r7cms r;test_sanity_version_checkz"TestMisc.test_sanity_version_check~s8 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)rrrrHr<r?rJrNrPrTrZr_rsr~rrrrrrrrrrrwr@r;r r ;s~(,")")")")H,,,15 ( ( ( (04(((("/3 ' ' ' '15 % % % %'''$$$,,,2------ !7!7!7F(((6III*!!!!!!F000".CCC"IIIIIr@r rCza b cceZdZdZeZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd Zeje ddZdS)TestWrapNumbersc,tjdSr)r rr>s r;setUpzTestWrapNumbers.setUps """""r@ctdtdddi}|t|d|dSNdisk1disk_iontrGr r7inputs r;test_first_callzTestWrapNumbers.test_first_calls<"Q1++& eY77?????r@cdtdddi}|t|d||t|d|dSrrrs r;test_input_hasnt_changedz(TestWrapNumbers.test_input_hasnt_changeds\"Q1++& eY77??? eY77?????r@cdtdddi}|t|d|dtdddi}|t|d|dtdddi}|t|d|dtdddi}|t|d|dS) Nrrr rrs r;test_increase_but_no_wrapz)TestWrapNumbers.test_increase_but_no_wraps"Q1++& eY77???"RR..) eY77???"RR..) eY77???"RR..) eY77?????r@c 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) NrdrrnZr2(rrs r; test_wrapzTestWrapNumbers.test_wraps"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 7r@cpdtdddi}|t|d|tdddtdddd}|t|d|dtdddi}|t|d|dS)Nrrrrdisk2rrs r;test_changing_keysz"TestWrapNumbers.test_changing_keyss"Q1++& eY77???Q1++Q1++'' eY77???"Q1++& eY77?????r@c tdddtdddd}|t|d|tdddtdddd}|t|dtdddtdddddtdddi}|t|d|tdddtdddd}|t|d|tdddtdddd}|t|d|tdddtdddd}|t|dtdddtdddddS)Nr rrrrrrrrs 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 7r@cddddd}|t|d||t|d|ddddd}t|d}||dd d dS) N) i,#Rȷ) iritUiirrrr) 6ri$iNrri) iU ii"r ii4iii\)nvme0n1 nvme0n1p1 nvme0n1p2 nvme0n1p3r) rrrrrrrrrr"ri)rGr )r7douts r;test_real_datazTestWrapNumbers.test_real_datasNCIM O O a33Q777 a33Q777NCIM O O1i(( Y*C00000r@c&dtdddi}t|dtj}||dd|i||ddii||ddiidS)NrrrrrLrrr cache_inforGr7rcaches r;test_cache_first_callz%TestWrapNumbers.test_cache_first_call s"Q1++&UI&&&')) qIu#5666 qIr?333 qIr?33333r@ctdtdddi}t|ddtdddi}t|dtj}||dd|i||ddddddi||ddiidS) NrrrrrrL)rr)rrLrrrr*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?33333r@c`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)NrrrrrrLr0rr1ctj}|ddddddi|dddtdgiidS) NrLrrrr0rrr1)r r+rGr\)r-r7s r;assert_z0TestWrapNumbers.test_cache_wrap..assert_,s +--E   a1A+.001 2 2 2   U1X''3 ~3F3F)GH J J J J Jr@rrr)rr r+rGr\)r7rr-r5s` 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#NOOOOOr@cdtdddi}t|dtdddtdddd}t|dtj}||dd|i||ddddddi||d diidS) NrrrrrrrLr0rr*r,s r;test_cache_changing_keysz(TestWrapNumbers.test_cache_changing_keysMs"Q1++&UI&&&Q1++Q1++''UI&&&')) qIu#5666  !H qKK L N N N qIr?33333r@c8dtdddi}t|dt|dtjd|tjiiiftjdtjddS)Nrrrz?!?)rr rrGr+rs r;test_cache_clearz TestWrapNumbers.test_cache_clearZs"Q1++&UI&&&UI&&& +++ 022RRLAAA +++ '''''r@ 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&rrrr r+r*rr-rG)r7cachesr-s r;test_cache_clear_public_apisz,TestWrapNumbers.test_cache_clear_public_apiscsD&(( ?0F0H0H ?==!=>> >!!!   (** ; ;E MM3U ; ; ; MM2E : : : :++---(** ? ?E MM2E : : :   6 > > > >**,,,(** "b".....r@N)rrrrtearDownrrrr rrr(r.r2r6r8r:rskipIfrr>rwr@r;rrs###H@@@@@@ @@@#7#7#7J @ @ @777< 1 1 1"444 4 4 4.P.P.P` 4 4 4(((X_,,o>>//?>///r@rzcan't locate scripts directoryceZdZdZedZed"dZdZej e ddZ dZ d Z d Zd Zej eoej d d ZdZdZdZdZej e ddZdZdZdZdZdZdZej e ddZ!dZ"ej e# ddZ$ej e% ddZ&ej e' dej e( dd Z)ej e' dej e( dd!Z*dS)# TestScriptsz-Tests for scripts in the "scripts" directory.cfdtjt|z}t|g}|D]}|| t |fi|}n8#t$r+}dt|vrt|cYd}~Sd}~wwxYw|s J||S)Nz%sr6) r3rr{rrrrstrip RuntimeErrorr+)exerrcmdargr'errs r; assert_stdoutzTestScripts.assert_stdoutsRW\\+s3333  C JJsOOOO S##F##))++CC   S))3xx   Cs s$ A-- B"7BB"BB"Nc(tjt|}trt |dd}nt |d}|5|}dddn #1swxYwYtj|dS)Nrtutf8)encoding) r3rr{rr openreadastparse)rFrrsrcs r; assert_syntaxzTestScripts.assert_syntaxsgll;,,  S$000AAS$A   &&((C                #sA33A7:A7cPt|}tjtD]|}|dredtj|dz|vr;|dtjt|z}dS)N.pytest_rzno test defined for %r script) rhr3listdirrendswithrsplitextrpr{)r7methsr"s r; test_coveragezTestScripts.test_coveragesD J{++ A AD}}U## ARW--d33A66eCCII= " [$ ? ?@AAA  A Ar@z POSIX onlycDtjtD]}|drntjt|}t jtj|t jzs| d|zdS)NrVz%r is not executable) r3rXrrYrr{statS_IXUSRST_MODErp)r7r"rs r;test_executablezTestScripts.test_executablesJ{++ = =D}}U## =w||K66|bgdmmDL&AA=II4t;<<<  = =r@c0|ddS)Nz disk_usage.pyrJr>s r;test_disk_usagezTestScripts.test_disk_usages ?+++++r@c0|ddS)Nzfree.pyrcr>s r; test_freezTestScripts.test_frees 9%%%%%r@c0|ddS)Nz meminfo.pyrcr>s r; test_meminfozTestScripts.test_meminfo <(((((r@cn|dttjdS)Nz procinfo.pyrJr+r3r4r>s r; test_procinfozTestScripts.test_procinfos, =#bikk*:*:;;;;;r@zno usersc0|ddS)Nzwho.pyrcr>s r;test_whozTestScripts.test_whos 8$$$$$r@c0|ddS)Nzps.pyrcr>s r;test_pszTestScripts.test_pss 7#####r@c0|ddS)Nz pstree.pyrcr>s r; test_pstreezTestScripts.test_pstree ;'''''r@c0|ddS)Nz netstat.pyrcr>s r; test_netstatzTestScripts.test_netstatrir@c0|ddS)Nz ifconfig.pyrcr>s r; test_ifconfigzTestScripts.test_ifconfigs =)))))r@r;cn|dttjdS)Nzpmap.pyrkr>s r; test_pmapzTestScripts.test_pmaps, 9c")++&6&677777r@cdtjjvr|d|ddS)Nussr;z procsmem.py)r&r'memory_full_info_fieldsrrJr>s r; test_procsmemzTestScripts.test_procsmemsP ((99;;C C C--00 0 =)))))r@c0|ddS)Nz killall.pyrTr>s r; test_killallzTestScripts.test_killallrir@c0|ddS)Nz nettop.pyrr>s r; test_nettopzTestScripts.test_nettoprsr@c0|ddS)Nztop.pyrr>s r;test_topzTestScripts.test_tops 8$$$$$r@c0|ddS)Nziotop.pyrr>s r; test_iotopzTestScripts.test_iotops :&&&&&r@c|dtj}|t t j|dS)Nzpidof.py)rJr&r'r"r*r+r3r4)r7outputs r; test_pidofzTestScripts.test_pidofsS##J0@0@0E0E0G0GHH c")++&&/////r@z WINDOWS onlyc0|ddS)Nzwinservices.pyrcr>s r;test_winserviceszTestScripts.test_winservicess +,,,,,r@c0|ddS)Nzcpu_distribution.pyrr>s r;test_cpu_distributionz!TestScripts.test_cpu_distributions 011111r@ctjs|d|ddS)Nzno temperaturesztemperatures.py)r&sensors_temperaturesrrJr>s r;test_temperatureszTestScripts.test_temperaturessA*,, - MM+ , , , ,-----r@ctjs|d|ddS)Nzno fanszfans.py)r& sensors_fansrrJr>s r; test_fanszTestScripts.test_fanss?"$$ % MM) $ $ $ 9%%%%%r@z no batteryc0|ddS)Nz battery.pyrcr>s r; test_batteryzTestScripts.test_battery <(((((r@c0|ddS)Nz sensors.pyrcr>s r; test_sensorszTestScripts.test_sensorsrr@r)+rrrrn staticmethodrJrTr\rr@rrardrfrhrlr r&rrnrprrrurwrryr~rrrrrrrrrrrrrr rrrwr@r;rBrB~s87  \ \AAAX_Y --==.-=,,,&&&)))<<<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?>)))r@rB__main__) run_from_name)5rnrQ collectionsrrr3rrr^sysr&rrrrrrrr psutil._compatr psutil.testsr r r rrrrrrrrrrrrrrr| PYTHON_39r namedtuplerrr@rrrBrpsutil.tests.runnerrrrwr@r;rs{  """"""111111((((((''''''!!!!!!######$$$$$$((((((,,,,,,,,,,,,))))))111111......''''''######&&&&&&!!!!!!$$$$$$!!!!!!   RaR F * IIIIIIIIII~IIIIIIb [E7++g/g/g/g/g/ng/g/g/^RW^^K000133@)@)@)@)@).@)@)33@)F z111111M(r@