0idI0dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Z ddl Z ddlZ ddl mZddl mZddl mZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddlm'Z'ddlm(Z(ddlm)Z)ddlm*Z*ddlm+Z+dd lm,Z,dd!lm-Z-dd"lm.Z.dd#lm/Z/dd$lm0Z0dd%lm1Z1dd&lm2Z2dd'lm3Z3Gd(d)eZ4Gd*d+eZ5Gd,d-eZ6Gd.d/eZ7Gd0d1eZ8e(jrjud23Gd4d5eZ;Gd6d7eZ<Gd8d9eZ=Gd:d;eZ>y).fooG  A)rlistrange call_countselfsleepr9r7s @r8test_retry_successz%TestRetryDecorator.test_retry_successCsQ q1T 2  3  U1Xuzz1$$$r;ctdddfd}ttdtjt 5|ddd|j dk(sJy#1swYxYw)Nr,r-r.c:rjddz ryr3r4r6sr8r9z2TestRetryDecorator.test_retry_failure..fooUr:r;)rr=r>rraisesZeroDivisionErrorr?r@s @r8test_retry_failurez%TestRetryDecorator.test_retry_failureRsc q1T 2  3  U1X ]], - E.1$$$. -s A''A0cttdd}tjt5|ddd|j dk(sJy#1swYxYw)Nr-) exceptionr0ctN) TypeErrorr;r8r9z2TestRetryDecorator.test_exception_arg..foocsOr;r)r ValueErrorrrGrNr?rArBr9s r8test_exception_argz%TestRetryDecorator.test_exception_argasP a 0  1 ]]9 % E&1$$$& %s AActdddd}tjt5|ddd|jdk(sJy#1swYxYw)Nr,r.cddz yr3rOrOr;r8r9z4TestRetryDecorator.test_no_interval_arg..fooo Er;rrrrGrHr?rQs r8test_no_interval_argz'TestRetryDecorator.test_no_interval_argksU q4 5  6 ]], - E.1$$$. - AActdddd}tjt5|ddd|jdk(sJy#1swYxYw)Nr,r-r.cddz yr3rOrOr;r8r9z0TestRetryDecorator.test_retries_arg..fooyrUr;rVrQs r8test_retries_argz#TestRetryDecorator.test_retries_argwsS q1T 2  3 ]], - E.1$$$. -rXcztjt5tdddddy#1swYyxYw)Nr,r-)r/timeout)rrGrPr)rArBs r8test_retries_and_timeout_argsz0TestRetryDecorator.test_retries_and_timeout_argss$ ]]: & !Q '' & &s1:N) __name__ __module__ __qualname__rpatchrCrIrRrWr[r^rOr;r8r*r*BsTZZ  % %TZZ  % %TZZ %%TZZ  % %TZZ %%TZZ ((r;r*c0eZdZdZdZdZdZdZdZy)TestSyncTestUtilscpttjtt j dz}t jdtdg5tjtj5t|ddddddy#1swYxYw#1swYyxYw)Nipsutil.tests.retry.__iter__r return_value) r(osgetpidmaxpsutilpidsrrbiterrrG NoSuchProcess)rAnopids r8test_wait_for_pidz#TestSyncTestUtils.test_wait_for_pidssRYY[!FKKM"U* ZZ5D!I Nv334U#5O N44O Ns$$B, B B, B) %B,,B5c|j}t|d5}|jddddt|tj j |rJy#1swY6xYw)Nwr9 get_testfnopenwriter'ripathexistsrAtestfnfs r8test_wait_for_filez$TestSyncTestUtils.test_wait_for_filesT" &# ! GGENf77>>&)))) s A$$A-c|j}t|d5 dddt|dtjj |rJy#1swY8xYw)NrsT)empty)rurvr'rirxryrAr{s r8test_wait_for_file_emptyz*TestSyncTestUtils.test_wait_for_file_emptysL" &#  fD)77>>&)))) s AAc|j}tjdtdg5t j t 5t|ddddddy#1swYxYw#1swYyxYw)Nrfrrg)rurrbrnrrGOSErrorr'rs r8test_wait_for_file_no_filez,TestSyncTestUtils.test_wait_for_file_no_filesV" ZZ5D!I Nw'f%(O N''O Ns#A5 A)A5)A2 .A55A>c|j}t|d5}|jddddt|dtj j |sJy#1swY8xYw)Nrsr9F)deletertrzs r8test_wait_for_file_no_deletez.TestSyncTestUtils.test_wait_for_file_no_deletesS" &# ! GGENfU+ww~~f%%% s A&&A/ctdy)NcyNr-rOrOr;r8z3TestSyncTestUtils.test_call_until..s1r;rrAs r8test_call_untilz!TestSyncTestUtils.test_call_untils 9r;N) r_r`rarqr}rrrrrOr;r8rdrds $**& &r;rdc*eZdZdZdZdZdZdZy)TestFSTestUtilscptt5}|jdk(sJ dddy#1swYyxYw)Nr)r__file__moderAr|s r8test_open_textzTestFSTestUtils.test_open_texts( x A66S= =! ,5cptt5}|jdk(sJ dddy#1swYyxYw)Nrb)rrrrs r8test_open_binaryz TestFSTestUtils.test_open_binarys(  "a66T> !># " "rc|j}t|tjj |sJt|tjj |sJyrM)rur!rirxisdirrs r8test_safe_mkdirzTestFSTestUtils.test_safe_mkdirsJ"6ww}}V$$$6ww}}V$$$r;c`|j}t|djt|tj j |rJt|t j|t|tj j |rJtjdttjd5}tjt5t|ddd|jsJ dddy#1swY!xYw#1swYyxYw)Nrszpsutil.tests.os.stat) side_effect)rurvcloser"rirxrymkdirrrbrerrnoEINVALrrGcalled)rAr{ms r8test_safe_rmpathz TestFSTestUtils.test_safe_rmpaths" VS!F77>>&)))F F77>>&))) ZZ " b0I w'F#(88O8   ('  s$D$, D8D$D! D$$D-cX|j}tj}tj|t |5tjtj j ||k(sJ dddtj|k(sJy#1swY#xYwrM)rurigetcwdrrrxjoin)rAr{bases r8 test_chdirzTestFSTestUtils.test_chdirsp"yy{  6]99;"'',,tV"<< <<yy{d"""]s 8B  B)N)r_r`rarrrrrrOr;r8rrs!"%(#r;rcfeZdZdZdZej je ddZ dZ y)TestProcessUtilsc.|j}tj|j}|j sJt |j rJtj jrJtj jrJyrM) spawn_subprocrlProcesspid is_runningrtests _pids_started_subprocesses_started)rAsubpps r8test_reap_childrenz#TestProcessUtils.test_reap_childrensm!!# NN488 $||~~<<>!!<<----<<55555r;c|j\}}|j|jk7sJ|jsJ|jsJtjj }||gk(sJtjj d}t |dk(sJ||vsJ||vsJ|jtjk(sJ|j|jk(sJt||jrJ|jsJt||jrJy)NT) recursive) spawn_children_pairrrrlrchildrenlenppidrirjr%)rAchild grandchildrs r8test_spawn_children_pairz)TestProcessUtils.test_spawn_children_pairs8 446zyyJNN***!!!$$&&&>>#,,.E7""">>#,,t,<8}!!!   X%%%zz|ryy{*** EII---%##%%%$$&&&*((****r; POSIX onlyreasoncp|j\}}|jtjk(sJyrM) spawn_zombiestatusrl STATUS_ZOMBIE)rA_parentzombies r8test_spawn_zombiez"TestProcessUtils.test_spawn_zombies.++-}}&"6"6666r;c|j}t||j|jt|t j |jj}t||j|jt|t ddg}t j|tjtjt}t||j|jt||jj}t||j|jt|tr`|j\}}t|t||j|j|j|jyy)Nz-cz3import time; [time.sleep(0.1) for x in range(100)];)stdoutstderrenv) rr%assert_pid_gonerrlrrPopen subprocessPIPErrr)rArcmdrparentrs r8test_terminatezTestProcessUtils.test_terminatesG    !  QUU#! NN4--/33 4!  QUU#!    A  LL ????   !  QUU#!   "&&# QUU## !..0NFF f  f    ,   , r;N) r_r`rarrrmarkskipifrrrrOr;r8rrs;6+* [[E ,7787%-r;rc8eZdZdZej j e ddZdZ ej j e dej j e xse dej j e ddZ d Zy ) TestNetUtilsct}td|f5}|jd|k(sJ dddy#1swYyxYw)Nraddrr-)rr getsockname)rAportss r8rzTestNetUtils.bind_socket)s< r4j )Q==?1%- --* ) )s <Arrcv|j}t|5}|jtjk(sJ|j tj k(sJ|j|k(sJtjj|sJtjtj|jsJ ddd|j}t|tj5}|j tjk(sJ dddy#1swY^xYw#1swYyxYw)N)type)rurfamilysocketAF_UNIXr SOCK_STREAMrrirxrystatS_ISSOCKst_mode SOCK_DGRAM)rAnamesocks r8test_bind_unix_socketz"TestNetUtils.test_bind_unix_socket.s  d #t;;&..0 0099 2 22 22##%- --77>>$' ''==!6!67 77 $  d):): ;t99 1 11 11< ;$ #< ;sB)D#9 D/#D,/D8c4dtf}ttj|\}}|5|5|j |k(sJ|j |k(sJ|j |k7sJ ddddddy#1swYxYw#1swYyxYw)Nz 127.0.0.1r)rr$rAF_INETr getpeername)rArserverclients r8test_tcp_socketpairz TestNetUtils.test_tcp_socketpair<s]_-'TB V%%'4/ //%%'4/ //%%'4/ // VVVVVVs#BAB1BB BBz*/var/run/log UNIX socket opened by defaultzcan't list UNIX socketsctj}|j}t|j drJ|j }t |\}} tjj|sJtjtj|jsJ|j|z dk(sJtt|j ddk(sJ|j|k(sJ|j|k(sJ |j!|j!y#|j!|j!wxYw)Nunix)kindr)rlrnum_fdsrnet_connectionsrur&rirxryrrrrrrr)rArrrrrs r8test_unix_socketpairz!TestNetUtils.test_unix_socketpairEs/ NN ))+.q/@/@f/@/MNNN (. 77>>$' ''==!6!67 7799;(A- --/0A0Av0A0NO  %%'4/ //%%'4/ // LLN LLN LLN LLNs !CE"E%crt5}tjt}tjt}|D]R}||jxxdz cc<||j t jt jxxdz cc<T|t jdk\sJtr|t jdk\sJtrtr|t jdk\sJ|t jdk\sJ|t j dk\sJ dddy#1swYyxYw)Nr-r)r collections defaultdictintr getsockoptr SOL_SOCKETSO_TYPErr AF_INET6rr rrr)rAsocksfamstypesrs r8test_create_socketsz TestNetUtils.test_create_socketsbs  **3/D++C0EQXX!#all6#4#4fnnEF!KF'1, ,,FOO,1111FNN+q000++,1 11**+q0 00  s DD--D6N)r_r`rarrrrrrrrrr rrrOr;r8rr(s.  [[E ,7 28 20 [[E ,7 [['"N [[ $$-F8,1r;rserialrceZdZedZdZeejje dejje ddZ dZ dZ d Zy ) TestMemLeakClasscTfd}ddi|j|ddddk(sJy)Nc dxxdz cc<y)Ncntr-rO)r sr8funz(TestMemLeakClass.test_times..funws J!OJr;r r )times warmup_times)execute)rArr s @r8 test_timeszTestMemLeakClass.test_timesus7 aj S 45zRr;ctjt5|jdddddtjt5|jdddddtjt5|jdddddtjt5|jdd dddtjt5|jd d dddy#1swYxYw#1swYxYw#1swYxYw#1swYdxYw#1swYyxYw) NcyNrrOrOr;r8rz1TestMemLeakClass.test_param_err..r;rrcyrrOrOr;r8rz1TestMemLeakClass.test_param_err..rr;cyrrOrOr;r8rz1TestMemLeakClass.test_param_err..rr;)rcyrrOrOr;r8rz1TestMemLeakClass.test_param_err..rr;) tolerancecyrrOrOr;r8rz1TestMemLeakClass.test_param_err..rr;)r/)rrGrPrrs r8test_param_errzTestMemLeakClass.test_param_err~s ]]: & LL!L ,' ]]: & LL"L -' ]]: & LLL 4' ]]: & LLbL 1' ]]: & LLBL /' &' & & & & & & & & &s;DDD(<D42EDD%(D14D=E z skipped on CIrzskipped during test coveragecg}|fd} tjtjjd5t j t j5t jt j5|j|dddddddddd~y#1swYxYw#1swYxYw#1swY~yxYw#~wxYw)Nc,|jddzy)Nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxappendlss r8rz+TestMemLeakClass.test_leak_mem..funs IIi$& 'r;z extra-memmatchdr) rrGfail Exception contextlibredirect_stdoutioStringIOredirect_stderrr)rAr)rs r8 test_leak_memzTestMemLeakClass.test_leak_mems ( v{{44KH//KKM--bkkm<LLCL0=I =<I sX/C(C (CB6C$C,C6B? ;CC CCCCCcfd}gtrdnd}tjtjjd|z5j |dddy#1swYyxYw)Nc|tt}j|jj |yrM)rvr addCleanuprr')r|boxrAs r8rz1TestMemLeakClass.test_unclosed_files..funs'XA OOAGG $ JJqMr;fdhandlez unclosed r*)rrrGr-r.r)rArrr8s` @r8test_unclosed_filesz$TestMemLeakClass.test_unclosed_filessN  t( ]]6;;00 d8J K LL L K Ks A""A+chfd}gd}|j||ddt|dzk(sJy)Nc.jddzy)Nxxxxxxxxxxxxxxxxxxxxxxxxr%r&r(sr8rz,TestMemLeakClass.test_tolerance..funs IIho &r;r,ri )rrrr-)rr)rArrr)s @r8test_tolerancezTestMemLeakClass.test_tolerancesG ' u18I  2w%!)###r;ctd}|jt|tjt5|jt|dddd}tjtj j 5|jt|dddy#1swYYxYw#1swYyxYw)Ncddz yr3rOrOr;r8fun_1z2TestMemLeakClass.test_execute_w_exc..fun_1s Er;cyrMrOrOr;r8fun_2z2TestMemLeakClass.test_execute_w_exc..fun_2s r;) execute_w_excrHrrGrr-r.)rArBrDs r8test_execute_w_excz#TestMemLeakClass.test_execute_w_excs  ,e4 ]], -   w .. ]]6;;00 1   0% 82 1 . - 2 1sB"B."B+.B7N)r_r`rar rr!rrrr r r4r;r?rFrOr;r8r r ss|   0 [[ ?; [[)GHI<  $ 9r;r c<eZdZdZdZdZdZdZdZdZ dZ y ) TestFakePytestctj}|j|tjt j }|j |}|S)N)stream)unittest TestSuiteaddTestTextTestRunnerr1r2run)rAklasssuiterunnerresults r8run_test_classzTestFakePytest.run_test_classsE""$ e(( >E" r;ctjt5}ddz dddtjtsJtjt d5}t d#1swYLxYw#1swYnxYw tjt d5}t d#1swYnxYw t jdS#t$r}t|dk(sJYd}~yd}~wwxYw)Nr-rr9r*barexception not raisedz"foo" does not match "bar") rrGrH isinstancevaluerPrr-AssertionErrorstr)rAcmerrs r8 test_raiseszTestFakePytest.test_raisess    1 2b E3"(($5666    % 8BU# # 3 29 8 7##Je< ''=<< ;;56 6 <s8;; ;; .foosr;r-ceZdZdZy)%TestFakePytest.test_mark..FoocyrrOrs r8rVz)TestFakePytest.test_mark..Foo.barsr;N)r_r`rarVrOr;r8Foorbs r;rd)rr xdist_grouprV)rAr9rds r8 test_markzTestFakePytest.test_marks{    % %8 % 4  5 uzz    % %8 % 4   5 uyy{ar;cGddtj}|j|d}|jsJt |j dk(sJ|j dddk(sJGddtj}|j|d}|jsJt |j dk(sJy)NcReZdZejj dddZy),TestFakePytest.test_skipif..TestCaseTrrcddk(sJyrrOrs r8r9z0TestFakePytest.test_skipif..TestCase.foo Av vr;Nr_r`rarrrr9rOr;r8TestCaseris*    $ $T( $ ; < r;rmr9r-rrcReZdZejj dddZy)riFrrcddk(sJyrrOrs r8r9z0TestFakePytest.test_skipif..TestCase.foorkr;NrlrOr;r8rmz,TestFakePytest.test_skipif..TestCases*    $ $U8 $ < = r;rKrmrT wasSuccessfulrskippedrArmrSs r8 test_skipifzTestFakePytest.test_skipifs x((  $$Xe_5##%%%6>>"a'''~~a #x/// x((  $$Xe_5##%%%6>>"a'''r;cGddtj}|j|d}|jsJt |j dk(sJ|j dddk(sJy)NceZdZdZy)*TestFakePytest.test_skip..TestCasec<tjdddk(sJy)Nrr-r)rskiprs r8r9z.TestFakePytest.test_skip..TestCase.foos  *Av vr;N)r_r`rar9rOr;r8rmrws r;rmr9r-rrrprss r8 test_skipzTestFakePytest.test_skipso x((  $$Xe_5##%%%6>>"a'''~~a #x///r;c|jt}tj|t tj j |dd5 dddt tj j |dd5}|jtjdjdddtjjtjd|5t!j"t%j&5t)j*}dddj-dk(sJ dddy#1swYxYw#1swYxYw#1swYAxYw#1swYyxYw)N)dirz __init__.pyrsz test_file.pyz import unittest class TestCase(unittest.TestCase): def test_passed(self): pass r r-)rur rirrvrxrrwtextwrapdedentlstriprrbobjectrlrr/r3r1r2rmaincountTestCases)rAtmpdirr|rQs r8 test_mainzTestFakePytest.test_mainsT*  "'',,v}5s ; < "'',,v~6 < GGHOO% VX  =ZZ  v||VV <++BKKM:#((*;'')Q. ..= << ; < <;:= z:TestTestingUtils.test_process_namespace..?sD1QqTV^11 r)rlrrtestnextrngettersr)rArnsrs r8test_process_namespacez'TestTestingUtils.test_process_namespace;sY NN  q !  Dbggbjj1DDQGu   r;ct}td|j|jDd}|t j k(sJy)Nc32K|]}|ddk(s |yw)r- net_if_addrsNrOrs r8rz9TestTestingUtils.test_system_namespace..DsL1QqT^5K11rr)r#rrnrrlr)rArrs r8test_system_namespacez&TestTestingUtils.test_system_namespaceBsE  Lbggbjj1LLQOu++----r;N)r_r`rarrrOr;r8rr:s !.r;rceZdZdZy)TestOtherUtilscttjdddddsJttrJy)Nr9za b cr-rr<)rr namedtupletuplers r8test_is_namedtuplez!TestOtherUtils.test_is_namedtupleIs<C[33E7CAq!LMMM ))))r;N)r_r`rarrOr;r8rrHs*r;r)?__doc__rr/rr1rirrrr}rKrrrl psutil.testsrrrpsutil._commonrrr r r r r rrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r*rdrrrrrer rHrrrOr;r8rs?8  &$(#!1#'''$)#'$4&&*&)#$)'"(&%B(B(J$$P*#n*#ZI-~I-XH1>H1Vh'K9~K9(K9\u-^u-p .~ .*^*r;