
    9idI                     *   S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSK
Jr  SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJr  SSKJ r   SSKJ!r!  SSKJ"r"  SSKJ#r#  SSKJ$r$  SSKJ%r%  SSKJ&r&  SSKJ'r'  SSKJ(r(  SSKJ)r)  SSKJ*r*  SSKJ+r+  SS KJ,r,  SS!KJ-r-  SS"KJ.r.  SS#KJ/r/  SS$KJ0r0  SS%KJ1r1  SS&KJ2r2  SS'KJ3r3   " S( S)\5      r4 " S* S+\5      r5 " S, S-\5      r6 " S. S/\5      r7 " S0 S1\5      r8\(Rr                  Ru                  S2S39 " S4 S5\5      5       r; " S6 S7\5      r< " S8 S9\5      r= " S: S;\5      r>g)<z1Tests for testing utils (psutil.tests namespace).    N)mock)FREEBSD)NETBSD)POSIX)open_binary)	open_text)supports_ipv6)
CI_TESTING)COVERAGE)HAS_NET_CONNECTIONS_UNIX)HERE)
PYTHON_EXE)PYTHON_EXE_ENV)PsutilTestCase)TestMemoryLeak)bind_socket)bind_unix_socket
call_until)chdir)create_sockets)fake_pytest)filter_proc_net_connections)get_free_port)is_namedtuple)process_namespace)pytest)reap_children)retry)retry_on_failure)
safe_mkdir)safe_rmpath)system_namespace)tcp_socketpair)	terminate)unix_socketpair)wait_for_file)wait_for_pidc                   4   \ rS rSr\R
                  " S5      S 5       r\R
                  " S5      S 5       r\R
                  " S5      S 5       r\R
                  " S5      S 5       r	\R
                  " S5      S 5       r
\R
                  " S5      S 5       rS	rg
)TestRetryDecoratorB   z
time.sleepc                    ^ [        SSS S9U4S j5       n[        [        S5      5      mU" 5       S:X  d   eUR                  S:X  d   eg )N      retriesintervallogfunc                  P   > T (       a  T R                  5         SS-    T (       a  M  gNr.   r   popqueues   [/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/psutil/tests/test_testutils.pyfoo2TestRetryDecorator.test_retry_success.<locals>.fooG   "    		A %        )r   listrange
call_countselfsleepr:   r8   s      @r9   test_retry_success%TestRetryDecorator.test_retry_successC   sQ     
q1T	2	 
3	 U1Xuzz1$$$r=   c                    ^ [        SSS S9U4S j5       n[        [        S5      5      m[        R                  " [
        5         U" 5         S S S 5        UR                  S:X  d   eg ! , (       d  f       N!= f)Nr-   r.   r/   c                  P   > T (       a  T R                  5         SS-    T (       a  M  gr4   r5   r7   s   r9   r:   2TestRetryDecorator.test_retry_failure.<locals>.fooU   r<   r=      )r   r?   r@   r   raisesZeroDivisionErrorrA   rB   s      @r9   test_retry_failure%TestRetryDecorator.test_retry_failureR   sc     
q1T	2	 
3	 U1X]],-E .1$$$ .-s   A''
A5c                     [        [        SS9S 5       n[        R                  " [        5         U" 5         S S S 5        UR
                  S:X  d   eg ! , (       d  f       N!= f)Nr.   )	exceptionr1   c                      [         eN)	TypeError r=   r9   r:   2TestRetryDecorator.test_exception_arg.<locals>.fooc   s    Or=   r   )r   
ValueErrorr   rK   rS   rA   rC   rD   r:   s      r9   test_exception_arg%TestRetryDecorator.test_exception_arga   sP    	a	0	 
1	 ]]9%E &1$$$ &%s   A
A c                     [        SS S S9S 5       n[        R                  " [        5         U" 5         S S S 5        UR                  S:X  d   eg ! , (       d  f       N!= f)Nr-   r/   c                      SS-    g r4   rT   rT   r=   r9   r:   4TestRetryDecorator.test_no_interval_arg.<locals>.fooo   	    Er=   r   r   r   rK   rL   rA   rW   s      r9   test_no_interval_arg'TestRetryDecorator.test_no_interval_argk   sU     
q4	5	 
6	 ]],-E .1$$$ .-   A
Ac                     [        SSS S9S 5       n[        R                  " [        5         U" 5         S S S 5        UR                  S:X  d   eg ! , (       d  f       N!= f)Nr-   r.   r/   c                      SS-    g r4   rT   rT   r=   r9   r:   0TestRetryDecorator.test_retries_arg.<locals>.fooy   r]   r=   r^   rW   s      r9   test_retries_arg#TestRetryDecorator.test_retries_argw   sS    	q1T	2	 
3	 ]],-E .1$$$ .-ra   c                     [         R                  " [        5         [        SSS9  S S S 5        g ! , (       d  f       g = f)Nr-   r.   )r0   timeout)r   rK   rV   r   )rC   rD   s     r9   test_retries_and_timeout_args0TestRetryDecorator.test_retries_and_timeout_args   s$    ]]:&!Q' '&&s   /
=rT   N)__name__
__module____qualname____firstlineno__r   patchrE   rM   rX   r_   re   ri   __static_attributes__rT   r=   r9   r*   r*   B   s    	ZZ% % 
ZZ% % 
ZZ% % 
ZZ	% 	% 
ZZ% % 
ZZ( (r=   r*   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestSyncTestUtils   c                    [        [        R                  " 5       5        [        [        R
                  " 5       5      S-   n[        R                  " S[        S/5      S9   [        R                  " [        R                  5         [        U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Ni psutil.tests.retry.__iter__r   return_value)r(   osgetpidmaxpsutilpidsr   ro   iterr   rK   NoSuchProcess)rC   nopids     r9   test_wait_for_pid#TestSyncTestUtils.test_wait_for_pid   ss    RYY[!FKKM"U*ZZ5D!INv334U# 5 ON44 ONs$   %B2B!B2!
B/	+B22
C c                     U R                  5       n[        US5       nUR                  S5        S S S 5        [        U5        [        R
                  R                  U5      (       a   eg ! , (       d  f       N@= f)Nwr:   
get_testfnopenwriter'   rx   pathexistsrC   testfnfs      r9   test_wait_for_file$TestSyncTestUtils.test_wait_for_file   sW    "&#!GGEN f77>>&))))) s   A))
A7c                     U R                  5       n[        US5          S S S 5        [        USS9  [        R                  R                  U5      (       a   eg ! , (       d  f       N?= f)Nr   T)empty)r   r   r'   rx   r   r   rC   r   s     r9   test_wait_for_file_empty*TestSyncTestUtils.test_wait_for_file_empty   sO    "&# fD)77>>&))))) s   A
A&c                    U R                  5       n[        R                  " S[        S/5      S9   [        R
                  " [        5         [        U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nru   r   rv   )r   r   ro   r}   r   rK   OSErrorr'   r   s     r9   test_wait_for_file_no_file,TestSyncTestUtils.test_wait_for_file_no_file   sV    "ZZ5D!INw'f% ( ON'' ONs#   A9A(A9(
A6	2A99
Bc                     U R                  5       n[        US5       nUR                  S5        S S S 5        [        USS9  [        R
                  R                  U5      (       d   eg ! , (       d  f       N?= f)Nr   r:   F)deleter   r   s      r9   test_wait_for_file_no_delete.TestSyncTestUtils.test_wait_for_file_no_delete   sV    "&#!GGEN fU+ww~~f%%%% s   A((
A6c                     [        S 5        g )Nc                      gNr.   rT   rT   r=   r9   <lambda>3TestSyncTestUtils.test_call_until.<locals>.<lambda>   s    1r=   r   rC   s    r9   test_call_until!TestSyncTestUtils.test_call_until   s
    9r=   rT   N)rk   rl   rm   rn   r   r   r   r   r   r   rp   rT   r=   r9   rr   rr      s     $**&&r=   rr   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestFSTestUtils   c                 |    [        [        5       nUR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nr)r   __file__moderC   r   s     r9   test_open_textTestFSTestUtils.test_open_text   s(    x A66S= = !     -
;c                 |    [        [        5       nUR                  S:X  d   e S S S 5        g ! , (       d  f       g = f)Nrb)r   r   r   r   s     r9   test_open_binary TestFSTestUtils.test_open_binary   s(    "a66T>!> #""r   c                     U R                  5       n[        U5        [        R                  R	                  U5      (       d   e[        U5        [        R                  R	                  U5      (       d   eg rR   )r   r!   rx   r   isdirr   s     r9   test_safe_mkdirTestFSTestUtils.test_safe_mkdir   sP    "6ww}}V$$$$6ww}}V$$$$r=   c                    U R                  5       n[        US5      R                  5         [        U5        [        R
                  R                  U5      (       a   e[        U5        [        R                  " U5        [        U5        [        R
                  R                  U5      (       a   e[        R                  " S[        [        R                  S5      S9 n[        R                  " [        5         [        U5        S S S 5        UR                  (       d   e S S S 5        g ! , (       d  f       N+= f! , (       d  f       g = f)Nr   zpsutil.tests.os.stat )side_effect)r   r   closer"   rx   r   r   mkdirr   ro   r   errnoEINVALr   rK   called)rC   r   ms      r9   test_safe_rmpath TestFSTestUtils.test_safe_rmpath   s    "VS!F77>>&))))F
F77>>&))))ZZ"b0I
w'F# (88O8
 
 ('
 
s$   D86D'D8'
D5	1D88
Ec                 l   U R                  5       n[        R                  " 5       n[        R                  " U5        [	        U5         [        R                  " 5       [        R
                  R                  X!5      :X  d   e S S S 5        [        R                  " 5       U:X  d   eg ! , (       d  f       N*= frR   )r   rx   getcwdr   r   r   join)rC   r   bases      r9   
test_chdirTestFSTestUtils.test_chdir   sn    "yy{
6]99;"'',,t"<<<< yy{d""" ]s   9B%%
B3rT   N)
rk   rl   rm   rn   r   r   r   r   r   rp   rT   r=   r9   r   r      s    !"%(#r=   r   c                   p    \ rS rSrS rS r\R                  R                  \	(       + SS9S 5       r
S rSrg	)
TestProcessUtils   c                 X   U R                  5       n[        R                  " UR                  5      nUR	                  5       (       d   e[        5         UR	                  5       (       a   e[        R                  R                  (       a   e[        R                  R                  (       a   eg rR   )	spawn_subprocr{   Processpid
is_runningr   tests_pids_started_subprocesses_started)rC   subpps      r9   test_reap_children#TestProcessUtils.test_reap_children   sq    !!#NN488$||~~~<<>>!!<<----<<55555r=   c                    U R                  5       u  pUR                  UR                  :w  d   eUR                  5       (       d   eUR                  5       (       d   e[        R                  " 5       R                  5       nX1/:X  d   e[        R                  " 5       R                  SS9n[        U5      S:X  d   eX;   d   eX#;   d   eUR                  5       [        R                  " 5       :X  d   eUR                  5       UR                  :X  d   e[        U5        UR                  5       (       a   eUR                  5       (       d   e[        U5        UR                  5       (       a   eg )NT)	recursive   )spawn_children_pairr   r   r{   r   childrenlenppidrx   ry   r%   )rC   child
grandchildr   s       r9   test_spawn_children_pair)TestProcessUtils.test_spawn_children_pair   s?    446yyJNN***!!!!$$&&&&>>#,,.7""">>#,,t,<8}!!!   %%%zz|ryy{*** EII---%##%%%%$$&&&&*((*****r=   
POSIX onlyreasonc                 p    U R                  5       u  pUR                  5       [        R                  :X  d   eg rR   )spawn_zombiestatusr{   STATUS_ZOMBIE)rC   _parentzombies      r9   test_spawn_zombie"TestProcessUtils.test_spawn_zombie   s,    ++-}}&"6"6666r=   c                    U R                  5       n[        U5        U R                  UR                  5        [        U5        [        R
                  " U R                  5       R                  5      n[        U5        U R                  UR                  5        [        U5        [        SS/n[        R                  " U[        R                  [        R                  [        S9n[        U5        U R                  UR                  5        [        U5        U R                  5       R                  n[        U5        U R                  UR                  5        [        U5        [        (       a_  U R                  5       u  pE[        U5        [        U5        U R                  UR                  5        U R                  UR                  5        g g )Nz-cz3import time; [time.sleep(0.1) for x in range(100)];)stdoutstderrenv)r   r%   assert_pid_goner   r{   r   r   Popen
subprocessPIPEr   r   r   )rC   r   cmdr   parentr   s         r9   test_terminateTestProcessUtils.test_terminate   sG    !QUU#!NN4--/334!QUU#! A

 LL????	
 	!QUU#!  "&&#QUU##5!..0NFff  ,  , r=   rT   N)rk   rl   rm   rn   r   r   r   markskipifr   r   r   rp   rT   r=   r9   r   r      s;    6+* [[E	,77 87%-r=   r   c                   J   \ rS rSrS r\R                  R                  \(       + SS9S 5       r	S r
\R                  R                  \(       + SS9\R                  R                  \=(       d    \SS9\R                  R                  \(       + SS9S	 5       5       5       rS
 rSrg)TestNetUtilsi(  c                     [        5       n[        SU4S9 nUR                  5       S   U:X  d   e S S S 5        g ! , (       d  f       g = f)Nr   addrr.   )r   r   getsockname)rC   portss      r9   r   TestNetUtils.bind_socket)  s<    r4j)Q==?1%--- *))s	   :
Ar   r   c                    U R                  5       n[        U5       nUR                  [        R                  :X  d   eUR
                  [        R                  :X  d   eUR                  5       U:X  d   e[        R                  R                  U5      (       d   e[        R                  " [        R                  " U5      R                  5      (       d   e S S S 5        U R                  5       n[        U[        R                  S9 nUR
                  [        R                  :X  d   e S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)N)type)r   r   familysocketAF_UNIXr  SOCK_STREAMr   rx   r   r   statS_ISSOCKst_mode
SOCK_DGRAM)rC   namesocks      r9   test_bind_unix_socket"TestNetUtils.test_bind_unix_socket.  s     d#t;;&..00099 2 2222##%---77>>$''''==!6!67777 $  d):):;t99 1 1111 <; $# <;s   B8D0!E0
D>
Ec                 F   S[        5       4n[        [        R                  US9u  p#U   U   UR	                  5       U:X  d   eUR                  5       U:X  d   eUR	                  5       U:w  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz	127.0.0.1r   )r   r$   r  AF_INETr   getpeername)rC   r   serverclients       r9   test_tcp_socketpair TestNetUtils.test_tcp_socketpair<  s}    ]_-'TBV%%'4///%%'4///%%'4///	 VVVVVVs#   BAB0B
B	B
B z*/var/run/log UNIX socket opened by defaultzcan't list UNIX socketsc                    [         R                  " 5       nUR                  5       n[        UR	                  SS95      (       a   eU R                  5       n[        U5      u  pE [        R                  R                  U5      (       d   e[        R                  " [        R                  " U5      R                  5      (       d   eUR                  5       U-
  S:X  d   e[        [        UR	                  SS95      5      S:X  d   eUR                  5       U:X  d   eUR                  5       U:X  d   e UR!                  5         UR!                  5         g ! UR!                  5         UR!                  5         f = f)Nunix)kindr   )r{   r   num_fdsr   net_connectionsr   r&   rx   r   r   r
  r  r  r   r   r  r   )rC   r   r  r  r  r  s         r9   test_unix_socketpair!TestNetUtils.test_unix_socketpairE  s6    NN))+.q/@/@f/@/MNNNN (.	77>>$''''==!6!6777799;(A---/0A0Av0A0NO 
 %%'4///%%'4///LLNLLN LLNLLNs   #CE "E4c                    [        5        n[        R                  " [        5      n[        R                  " [        5      nU HQ  nX$R                  ==   S-  ss'   X4R                  [        R                  [        R                  5      ==   S-  ss'   MS     U[        R                     S:  d   e[        5       (       a  U[        R                     S:  d   e[        (       a$  [        (       a  U[        R                     S:  d   eU[        R                     S:  d   eU[        R                      S:  d   e S S S 5        g ! , (       d  f       g = f)Nr.   r   )r   collectionsdefaultdictintr  
getsockoptr  
SOL_SOCKETSO_TYPEr  r	   AF_INET6r   r   r  r	  r  )rC   socksfamstypesr  s        r9   test_create_sockets TestNetUtils.test_create_socketsb  s    **3/D++C0EXX!#ll6#4#4fnnEF!KF  '1,,,FOO,111u11FNN+q000++,111**+q000 s   D.E
ErT   N)rk   rl   rm   rn   r   r   r   r   r   r  r  r   r   r   r  r+  rp   rT   r=   r9   r   r   (  s    .
 [[E	,72 820 [[E	,7[['"N   [[$$-F   8,1r=   r   serialr  c                       \ rS rSr\" 5       S 5       rS r\" 5       \R                  R                  \
SS9\R                  R                  \SS9S 5       5       5       rS rS	 rS
 rSrg)TestMemLeakClassis  c                 R   ^ U4S jnSS0mU R                  USSS9  TS   S:X  d   eg )Nc                      > T S==   S-  ss'   g )Ncntr.   rT   )r3  s   r9   fun(TestMemLeakClass.test_times.<locals>.funw  s    J!OJr=   r3  r   
      )timeswarmup_times   )execute)rC   r4  r3  s     @r9   
test_timesTestMemLeakClass.test_timesu  s7    	 ajS45zRr=   c                    [         R                  " [        5         U R                  S SS9  S S S 5        [         R                  " [        5         U R                  S SS9  S S S 5        [         R                  " [        5         U R                  S SS9  S S S 5        [         R                  " [        5         U R                  S SS	9  S S S 5        [         R                  " [        5         U R                  S
 SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       g = f)Nc                      gNr   rT   rT   r=   r9   r   1TestMemLeakClass.test_param_err.<locals>.<lambda>      r=   r   r8  c                      gr@  rT   rT   r=   r9   r   rA    rB  r=   c                      gr@  rT   rT   r=   r9   r   rA    rB  r=   )r9  c                      gr@  rT   rT   r=   r9   r   rA    rB  r=   )	tolerancec                      gr@  rT   rT   r=   r9   r   rA    rB  r=   )r0   )r   rK   rV   r;  r   s    r9   test_param_errTestMemLeakClass.test_param_err~  s    ]]:&LL!L, ']]:&LL"L- ']]:&LLL4 ']]:&LLbL1 ']]:&LLBL/ '& '&&&&&&&&&s;   DDD(7D9+E

D
D%(
D69
E

Ezskipped on CIr   zskipped during test coveragec                    / nU4S jn [         R                  " [         R                  R                  SS9   [        R
                  " [        R                  " 5       5         [        R                  " [        R                  " 5       5         U R                  USS9  S S S 5        S S S 5        S S S 5        Ag ! , (       d  f       N = f! , (       d  f       N)= f! , (       d  f       N2= f! Af = f)Nc                 ,    U R                  SS-  5        g )Nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   appendlss    r9   r4  +TestMemLeakClass.test_leak_mem.<locals>.fun  s    IIi$&'r=   z	extra-memmatchd   rC  )
r   rK   fail	Exception
contextlibredirect_stdoutioStringIOredirect_stderrr;  )rC   rS  r4  s      r9   test_leak_memTestMemLeakClass.test_leak_mem  s      	(	v{{44KH//KKM--bkkm<LLCL0 = I  =<  IH sR   -C) *C!*CB6C$C,C) 6
C C
C	C
C&"C) )C,c                    ^ ^ UU 4S jn/ m[         (       a  SOSn[        R                  " [        R                  R                  SU-   S9   T R                  U5        S S S 5        g ! , (       d  f       g = f)Nc                  |   > [        [        5      n TR                  U R                  5        TR	                  U 5        g rR   )r   r   
addCleanupr   rQ  )r   boxrC   s    r9   r4  1TestMemLeakClass.test_unclosed_files.<locals>.fun  s'    XAOOAGG$JJqMr=   fdhandlez	unclosed rU  )r   r   rK   rX  rY  r;  )rC   r4  r  rd  s   `  @r9   test_unclosed_files$TestMemLeakClass.test_unclosed_files  sP    	
 ut(]]6;;00d8JKLL LKKs   A&&
A4c                 d   ^ U4S jn/ mSnU R                  XSSS9  [        T5      US-   :X  d   eg )Nc                  .   > T R                  SS-  5        g )NxxxxxxxxxxxxxxxxxxxxxxxxrO  rP  rR  s   r9   r4  ,TestMemLeakClass.test_tolerance.<locals>.fun  s    IIho&r=   rW  r   i  )r8  r9  rH  r.   )r;  r   )rC   r4  r8  rS  s      @r9   test_toleranceTestMemLeakClass.test_tolerance  sE    	' 18I 	 	
 2w%!)###r=   c                    S nU R                  [        U5        [        R                  " [        5         U R                  [        U5        S S S 5        S n[        R                  " [        R
                  R                  5         U R                  [        U5        S S S 5        g ! , (       d  f       N_= f! , (       d  f       g = f)Nc                      SS-    g r4   rT   rT   r=   r9   fun_12TestMemLeakClass.test_execute_w_exc.<locals>.fun_1  s	    Er=   c                      g rR   rT   rT   r=   r9   fun_22TestMemLeakClass.test_execute_w_exc.<locals>.fun_2  s    r=   )execute_w_excrL   r   rK   r   rX  rY  )rC   rr  ru  s      r9   test_execute_w_exc#TestMemLeakClass.test_execute_w_exc  s    	 	,e4]],-w. .	 ]]6;;0010%8 21 .- 21s   B$B5$
B25
CrT   N)rk   rl   rm   rn   r    r<  rJ  r   r   r   r
   r   r_  rh  rn  rx  rp   rT   r=   r9   r0  r0  s  s|       
0 [[
?;[[)GH I <  		$9r=   r0  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestFakePytesti  c                     [         R                  " 5       nUR                  U5        [         R                  " [        R
                  " 5       S9nUR                  U5      nU$ )N)stream)unittest	TestSuiteaddTestTextTestRunnerr\  r]  run)rC   klasssuiterunnerresults        r9   run_test_classTestFakePytest.run_test_class  sE    ""$e((>E"r=   c                    [         R                  " [        5       nSS-    S S S 5        [        WR                  [        5      (       d   e[         R                  " [
        SS9 n[        S5      e! , (       d  f       NT= f! , (       d  f       O= f [         R                  " [
        SS9 n[        S5      e! , (       d  f       O= f [        R                  " S5      $ ! [         a  n[        U5      S:X  d   e S nAg S nAff = f)Nr.   r   r:   rU  barexception not raisedz"foo" does not match "bar")
r   rK   rL   
isinstancevaluerV   r   rX  AssertionErrorstr)rC   cmerrs      r9   test_raisesTestFakePytest.test_raises  s     12bE 3"(($56666
%8BU## 32 98	7##Je< '' =<<
 ;;566  	<s8;;;;	<sA   A/#B /
A= 
BC +B77
CC 
D)C??Dc                     [         R                  R                  SS9S 5       nU" 5       S:X  d   e[         R                  R                  SS9 " S S5      5       nU" 5       R                  5       S:X  d   eg )Nr-  r.  c                      gr   rT   rT   r=   r9   r:   %TestFakePytest.test_mark.<locals>.foo  s    r=   r.   c                       \ rS rSrS rSrg)%TestFakePytest.test_mark.<locals>.Fooi  c                     gr   rT   r   s    r9   r  )TestFakePytest.test_mark.<locals>.Foo.bar  s    r=   rT   N)rk   rl   rm   rn   r  rp   rT   r=   r9   Foor    s    r=   r  )r   r   xdist_groupr  )rC   r:   r  s      r9   	test_markTestFakePytest.test_mark  s{    				%	%8	%	4	 
5	 uzz				%	%8	%	4	 	 
5	 uyy{ar=   c                     " S S[         R                  5      nU R                  U" S5      5      nUR                  5       (       d   e[	        UR
                  5      S:X  d   eUR
                  S   S   S:X  d   e " S S[         R                  5      nU R                  U" S5      5      nUR                  5       (       d   e[	        UR
                  5      S:X  d   eg )Nc                   T    \ rS rSr\R
                  R                  SSS9S 5       rSrg),TestFakePytest.test_skipif.<locals>.TestCasei  Tr   r   c                     SS:X  d   eg r   rT   r   s    r9   r:   0TestFakePytest.test_skipif.<locals>.TestCase.foo      Avvr=   rT   N	rk   rl   rm   rn   r   r   r   r:   rp   rT   r=   r9   TestCaser    s*    $$T($; <r=   r  r:   r.   r   r   c                   T    \ rS rSr\R
                  R                  SSS9S 5       rSrg)r  i  Fr   r   c                     SS:X  d   eg r   rT   r   s    r9   r:   r    r  r=   rT   Nr  rT   r=   r9   r  r    s*    $$U8$< =r=   r~  r  r  wasSuccessfulr   skippedrC   r  r  s      r9   test_skipifTestFakePytest.test_skipif  s    	x(( 	
 $$Xe_5##%%%%6>>"a'''~~a #x///	x(( 	
 $$Xe_5##%%%%6>>"a'''r=   c                      " S S[         R                  5      nU R                  U" S5      5      nUR                  5       (       d   e[	        UR
                  5      S:X  d   eUR
                  S   S   S:X  d   eg )Nc                       \ rS rSrS rSrg)*TestFakePytest.test_skip.<locals>.TestCasei  c                 @    [         R                  " S5        SS:X  d   eg )Nr   r.   r   )r   skipr   s    r9   r:   .TestFakePytest.test_skip.<locals>.TestCase.foo  s      *Avvr=   rT   N)rk   rl   rm   rn   r:   rp   rT   r=   r9   r  r    s    r=   r  r:   r.   r   r   r  r  s      r9   	test_skipTestFakePytest.test_skip  sr    	x(( 	
 $$Xe_5##%%%%6>>"a'''~~a #x///r=   c                 @   U R                  [        S9n[        R                  " U5        [	        [        R
                  R                  US5      S5          S S S 5        [	        [        R
                  R                  US5      S5       nUR                  [        R                  " S5      R                  5       5        S S S 5        [        R                  R                  [        R                  SU5         [         R"                  " [$        R&                  " 5       5         [(        R*                  " 5       nS S S 5        WR-                  5       S:X  d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NQ= f! , (       d  f       g = f)N)dirz__init__.pyr   ztest_file.pyz                import unittest

                class TestCase(unittest.TestCase):
                    def test_passed(self):
                        pass
                r   r.   )r   r   rx   r   r   r   r   r   textwrapdedentlstripr   ro   objectr{   r   rZ  r^  r\  r]  r   maincountTestCases)rC   tmpdirr   r  s       r9   	test_mainTestFakePytest.test_main  s   T*
"'',,v}5s; <"'',,v~6<GGHOO %  VX = ZZv||VV<++BKKM:#((* ;'')Q... =< <;<< ;: =<s<   E4E-3*FE>3F
E*-
E;>
F	F
Fc                    [         R                  " [        5         [        R                  " S[        SS9  S S S 5         [         R                  " [        5         [        R                  " S[
        SS9  S S S 5        [        R                  " S5      $ ! , (       d  f       Nb= f! , (       d  f       N5= f! [         a     Of = f[         R                  " [        SS9   [        R                  " S[        SS9  S S S 5        O! , (       d  f       O= f [         R                  " [        SS9   [        R                  " S[        SS9  S S S 5        O! , (       d  f       O= f[        R                  " S5      $ ! [         a     g f = f)Nr:   r.   )
stacklevelr  rU  r  )	r   warnsUserWarningwarningswarnDeprecationWarningr   rX  r  r   s    r9   
test_warnsTestFakePytest.test_warns  s   {+MM%; ,	7"";/e%7AF 0
 ;;566 ,+
 0/ 		 {%8MM%; 988	7"";e<e[Q? =<<
 ;;566  		sj   BB4 B#4B4 
B #
B1-B4 4
C CD
DE7 ,E	E7 
EE7 7
FFc                     [         R                  " [         R                  R                  5         [         R                  " S5      e! , (       d  f       g = f)Nr   )r   rK   rX  rY  r   s    r9   	test_failTestFakePytest.test_fail5  s6     0 0 : :;""8,, <;s   A
ArT   N)rk   rl   rm   rn   r  r  r  r  r  r  r  r  rp   rT   r=   r9   r{  r{    s*    7  ((	0/$76-r=   r{  c                        \ rS rSrS rS rSrg)TestTestingUtilsi:  c                     [         R                  " 5       n[        U5      nUR                  5         [	        S UR                  UR                  5       5       5      S   nU" 5       UR                  5       :X  d   eg )Nc              3   :   #    U  H  oS    S:X  d  M  Uv   M     g7f)r.   r   NrT   .0xs     r9   	<genexpr>:TestTestingUtils.test_process_namespace.<locals>.<genexpr>?  s     D1qTV^111   	r   )r{   r   r   testnextr}   gettersr   )rC   r   nsr4  s       r9   test_process_namespace'TestTestingUtils.test_process_namespace;  sY    NNq!
	Dbggbjj1DDQGu   r=   c                     [        5       n[        S UR                  UR                  5       5       5      S   nU" 5       [        R
                  " 5       :X  d   eg )Nc              3   :   #    U  H  oS    S:X  d  M  Uv   M     g7f)r.   net_if_addrsNrT   r  s     r9   r  9TestTestingUtils.test_system_namespace.<locals>.<genexpr>D  s     L1qT^5K111r  r   )r#   r  r}   r  r{   r  )rC   r  r4  s      r9   test_system_namespace&TestTestingUtils.test_system_namespaceB  sE    Lbggbjj1LLQOu++----r=   rT   N)rk   rl   rm   rn   r  r  rp   rT   r=   r9   r  r  :  s    !.r=   r  c                       \ rS rSrS rSrg)TestOtherUtilsiH  c                     [        [        R                  " SS5      " SSS5      5      (       d   e[        [        5       5      (       a   eg )Nr:   za b cr.   r   r>   )r   r!  
namedtupletupler   s    r9   test_is_namedtuple!TestOtherUtils.test_is_namedtupleI  s?    [33E7CAq!LMMMM )))))r=   rT   N)rk   rl   rm   rn   r  rp   rT   r=   r9   r  r  H  s    *r=   r  )?__doc__r!  rZ  r   r\  rx   r  r
  r   r  r~  r  r   r{   psutil.testsr   r   r   psutil._commonr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r*   rr   r   r   r   r   r  r0  r{  r  r  rT   r=   r9   <module>r     s?   8    	 	             & $ ( # ! 1  # ' ' ' $ ) #  ' $ 4 & & *  &  ) # $ ) ' " ( & %B( B(J$ $P*#n *#ZI-~ I-XH1> H1V h'K9~ K9 (K9\u-^ u-p.~ .*^ *r=   