
    ;^hG                        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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J.r.  SS%KJ/r/  SS&KJ0r0  SS'KJ1r1   " S( S)\5      r2 " S* S+\5      r3 " S, S-\5      r4 " S. S/\5      r5 " S0 S1\5      r6\&Rn                  Rq                  S2S39 " S4 S5\5      5       r9 " 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
)TestRetryDecoratorA   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   M/var/www/html/env/lib/python3.13/site-packages/psutil/tests/test_testutils.pyfoo2TestRetryDecorator.test_retry_success.<locals>.fooF   "    		A %        )r   listrange
call_countselfsleepr:   r8   s      @r9   test_retry_success%TestRetryDecorator.test_retry_successB   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>.fooT   r<   r=      )r   r?   r@   r   raisesZeroDivisionErrorrA   rB   s      @r9   test_retry_failure%TestRetryDecorator.test_retry_failureQ   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>.foob   s    Or=   r   )r   
ValueErrorr   rK   rS   rA   rC   rD   r:   s      r9   test_exception_arg%TestRetryDecorator.test_exception_arg`   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>.foon   	    Er=   r   r   r   rK   rL   rA   rW   s      r9   test_no_interval_arg'TestRetryDecorator.test_no_interval_argj   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>.foox   r]   r=   r^   rW   s      r9   test_retries_arg#TestRetryDecorator.test_retries_argv   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*   A   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_testprocr{   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%   assertPidGoner   r{   r   r   Popen
subprocessPIPEr   r   r   )rC   r   cmdr   parentr   s         r9   test_terminateTestProcessUtils.test_terminate   sG   !!155!!NN4..0445!155!! A

 LL????	
 	!155!!!!#''#155!#5!..0NFffvzz*vzz* 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                      \ 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S 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 defaultc                    [         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_socketpairD  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_sockets^  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+  rp   rT   r=   r9   r   r   '  s    .
 [[E	,72 820 [[E	,7[['"N   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)TestMemLeakClassio  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>.funs  s    J!OJr=   r3  r   
      )timeswarmup_times   )execute)rC   r4  r3  s     @r9   
test_timesTestMemLeakClass.test_timesq  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_errz  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                  " [        SS9   U R                  USS9  S S S 5        Ag ! , (       d  f       N= 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   AssertionErrorr;  )rC   rS  r4  s      r9   test_leak_memTestMemLeakClass.test_leak_mem  sO      	(	~[AS, B  BA s   A >A 
AA Ac                    ^ ^ UU 4S jn/ m[         (       a  SOSn[        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  r;  )rC   r4  r  r^  s   `  @r9   test_unclosed_files$TestMemLeakClass.test_unclosed_files  sF    	
 ut(]]>t1CDLL EDDs   A
A 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                 d   S nU R                  [        U5        [        R                  " [        5         U R                  [        U5        S S S 5        S n[        R                  " [
        5         U R                  [        U5        S S S 5        g ! , (       d  f       NK= 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  )rC   rl  ro  s      r9   test_execute_w_exc#TestMemLeakClass.test_execute_w_exc  sz    	 	,e4]],-w. .	 ]]>*0%8 +* .- +*s   B0B!
B!
B/rT   N)rk   rl   rm   rn   r    r<  rJ  r   r   r   r
   r   rY  rb  rh  rr  rp   rT   r=   r9   r0  r0  o  s|       
0 [[
?;[[)GH I < 		$9r=   r0  c                   >    \ 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                  " 5       nUR	                  U5      nU$ rR   )unittest	TestSuiteaddTestTextTestRunnerrun)rC   klasssuiterunnerresults        r9   run_test_classTestFakePytest.run_test_class  s=    ""$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 U R                  S5      e! [         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   failrX  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	4##Je< '' =<<
 ))233  	<s8;;;;	<sA   A/#B /
A= 
BC +B77
CC 
C?$C::C?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=   rw  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         U R!                  ["        S5         [$        R&                  " 5       nUR)                  5       S:X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= 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   zFake pytest module was usedr.   )r   r   rx   r   r   r   r   r   textwrapdedentlstripr   ro   objectr{   r   assertWarnsRegexUserWarningr   maincountTestCases)rC   tmpdirr   r}  s       r9   	test_mainTestFakePytest.test_main   s   T*
"'',,v}5s; <"'',,v~6<GGHOO %  VX = ZZv||VV<&&: $((*++-222	 =< <;<<  =<s<   E4E3E;
,E*7E;
E
E'*
E8	4E;;
F	c                    [         R                  " [        5         [        R                  " S[        SS9  S S S 5         [         R                  " [        5         [        R                  " S[
        SS9  S S S 5        U R                  S5      e! , (       d  f       N]= f! , (       d  f       N0= 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U R                  S5      e! [         a     g f = f)Nr:   r.   )
stacklevelr  rU  r  )r   warnsr  warningswarnDeprecationWarningr  rX  r   s    r9   
test_warnsTestFakePytest.test_warns  s   {+MM%; ,	4"";/e%7AF 0
 ))233 ,+
 0/ 		 {%8MM%; 988	4"";e<e[Q? =<<
 ))233  		sj   BB/ B4B/ 
B
B,(B/ /
B<;B<C<<
D
E- 'E	E- 
EE- -
E:9E:rT   N)rk   rl   rm   rn   r  r  r  r  r  r  r  rp   rT   r=   r9   ru  ru    s%    4  ((	03(4r=   ru  c                        \ rS rSrS rS rSrg)TestTestingUtilsi0  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>5  s     D1qTV^111   	r   )r{   r   r   testnextr}   gettersr   )rC   r   nsr4  s       r9   test_process_namespace'TestTestingUtils.test_process_namespace1  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>:  s     L1qT^5K111r  r   )r#   r  r}   r  r{   r  )rC   r  r4  s      r9   test_system_namespace&TestTestingUtils.test_system_namespace8  sE    Lbggbjj1LLQOu++----r=   rT   N)rk   rl   rm   rn   r  r  rp   rT   r=   r9   r  r  0  s    !.r=   r  c                       \ rS rSrS rSrg)TestOtherUtilsi>  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_namedtuple?  s?    [33E7CAq!LMMMM )))))r=   rT   N)rk   rl   rm   rn   r  rp   rT   r=   r9   r  r  >  s    *r=   r  )=__doc__r!  r   rx   r  r
  r   r  rw  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  ru  r  r  rT   r=   r9   <module>r     s9   8   	             & $ ( # ! 1  # ' ' ' $ ) #  ' $ 4 & & *  &  ) # $ ) ' " ( & %B( B(J$ $P*#n *#ZI+~ I+XE1> E1P h'H9~ H9 (H9Vr4^ r4j.~ .*^ *r=   