
    ;^hs                        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	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\5      r " S S\5      r " S S\5      r  " S S\5      r!\RD                  " SS5      r# " S S\5      r$g) zMiscellaneous tests.    N)mock)WINDOWS)bcat)cat)debug)isfile_strict)memoize)memoize_when_activatedparse_environ_block)supports_ipv6wrap_numbers)HAS_NET_IO_COUNTERS)PsutilTestCase)process_namespace)pytest)reload_module)system_namespacec                   t    \ rS rSrS r\4S jrS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rSrg)TestSpecialMethods,   c                 r   [         R                  " [        5         [        R                  R
                  R                  SS-  5        S S S 5        [         R                  " [        R                  5         [        R                  " SS-  5        S S S 5        g ! , (       d  f       NU= f! , (       d  f       g = f)N      )	r   raisesOverflowErrorpsutil_psplatformcextcheck_pid_rangeNoSuchProcessProcessselfs    H/var/www/html/env/lib/python3.13/site-packages/psutil/tests/test_misc.pytest_check_pid_range'TestSpecialMethods.test_check_pid_range-   sk    ]]=)##33AsF; *]]6//0NN1c6" 10 *)00s   -B4B(
B%(
B6c                    [         R                  " U R                  5       R                  5      nU" U5      nSU;   d   eSUR                   3U;   d   eSUR	                  5        S3UR                  SS5      ;   d   eSU;   d   eSU;  d   eUR                  5         UR                  5         U" U5      nSU;   d   eSU;   d   e[        R                  R                  [         R                  S	[         R                  " [        R                  " 5       5      S
9   [         R                  " 5       nU" U5      nSUR                   3U;   d   eSU;   d   eSU;  d   e S S S 5        [        R                  R                  [         R                  S	[         R                  " [        R                  " 5       5      S
9   [         R                  " 5       nU" U5      nSUR                   3U;   d   eSU;   d   eSU;  d   e S S S 5        [        R                  R                  [         R                  S	[         R                  " [        R                  " 5       5      S
9   [         R                  " 5       nU" U5      nSUR                   3U;   d   eSU;  d   e S S S 5        g ! , (       d  f       GNH= f! , (       d  f       N= f! , (       d  f       g = f)Nzpsutil.Processzpid=zname=''zname=u'zstatus=z	exitcode=zstatus='terminated'nameside_effectzstatus='zombie'zname=
terminated)r   r#   spawn_testprocpidr+   replace	terminatewaitr   patchobjectZombieProcessosgetpidr"   AccessDenied)r%   funcprs       r&   test_process__repr__'TestSpecialMethods.test_process__repr__3   sr   NN4..0445G1$$$aeeW~"""z#qyyH'EEEEA~~!###		G$)))aZZNN,,RYY[9  

  AQA!%%>Q&&&$)))!###
 ZZNN,,RYY[9  

  AQA!%%>Q&&&1$$$!###
 ZZNN++BIIK8  

  AQA!%%>Q&&&!###
 
)
 

 

 
s&   AJ:AJ1;K
J.1
J?
Kc                 *    U R                  [        S9  g )N)r:   )r=   strr$   s    r&   test_process__str__&TestSpecialMethods.test_process__str___   s    !!s!+    c                 L    [        [        R                  " 5       5      S:X  d   eg )Nzpsutil.Error())reprr   Errorr$   s    r&   test_error__repr__%TestSpecialMethods.test_error__repr__b   s    FLLN#'7777rC   c                 L    [        [        R                  " 5       5      S:X  d   eg )N )r@   r   rF   r$   s    r&   test_error__str__$TestSpecialMethods.test_error__str__e   s    6<<>"b(((rC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )NA  z=psutil.NoSuchProcess(pid=321, msg='process no longer exists')r+   msgr+   rO   z5psutil.NoSuchProcess(pid=321, name='name', msg='msg'))rE   r   r"   r$   s    r&   test_no_such_process__repr__/TestSpecialMethods.test_no_such_process__repr__h   sV    %%c*+NO	
O %%cEBCFG	
GrC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )NrN   z"process no longer exists (pid=321)r+   rO   rP   msg (pid=321, name='name'))r@   r   r"   r$   s    r&   test_no_such_process__str__.TestSpecialMethods.test_no_such_process__str__r   sR    $$S)*34	
4 $$Sv5AB+,	
,rC   c           	          [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSSS95      S:X  d   eg )NrN   zGpsutil.ZombieProcess(pid=321, msg="PID still exists but it's a zombie")r+   @  foor+   ppidrO   z?psutil.ZombieProcess(pid=321, ppid=320, name='name', msg='foo'))rE   r   r6   r$   s    r&   test_zombie_process__repr__.TestSpecialMethods.test_zombie_process__repr__|   sX    %%c*+**	
*
 %%cSeLM	
rC   c           	          [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSSS95      S:X  d   eg )NrN   z,PID still exists but it's a zombie (pid=321)r+   rX   rY   rZ   z$foo (pid=321, ppid=320, name='name'))r@   r   r6   r$   s    r&   test_zombie_process__str__-TestSpecialMethods.test_zombie_process__str__   sT    $$S)*=>	
> $$SvCUKL56	
6rC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )NrN   zpsutil.AccessDenied(pid=321)r+   rO   rP   z4psutil.AccessDenied(pid=321, name='name', msg='msg'))rE   r   r9   r$   s    r&   test_access_denied__repr__-TestSpecialMethods.test_access_denied__repr__   sL    F'',-1OOOO$$Sv5ABEF	
FrC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )NrN   z	(pid=321)r+   rO   rP   rT   )r@   r   r9   r$   s    r&   test_access_denied__str__,TestSpecialMethods.test_access_denied__str__   sI    6&&s+,;;;##Cf%@A+,	
,rC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )N   z?psutil.TimeoutExpired(seconds=5, msg='timeout after 5 seconds')rN   r+   r0   r+   zUpsutil.TimeoutExpired(pid=321, name='name', seconds=5, msg='timeout after 5 seconds'))rE   r   TimeoutExpiredr$   s    r&   test_timeout_expired__repr__/TestSpecialMethods.test_timeout_expired__repr__   sV    &&q)*	

 &&qc?@--	
-rC   c                     [        [        R                  " S5      5      S:X  d   e[        [        R                  " SSSS95      S:X  d   eg )Nrh   ztimeout after 5 secondsrN   r+   ri   z.timeout after 5 seconds (pid=321, name='name'))r@   r   rj   r$   s    r&   test_timeout_expired__str__.TestSpecialMethods.test_timeout_expired__str__   sL    6((+,0IIII%%aSv>??@	
@rC   c                     [         R                  " 5       n[         R                  " 5       nX:X  d   eSUl        X:w  d   eUS:w  d   eg )N)r   r   rY   )r   r#   _ident)r%   p1p2s      r&   test_process__eq__%TestSpecialMethods.test_process__eq__   s?    ^^^^xx	xxU{{rC   c                 z    [         R                  " 5       [         R                  " 5       1n[        U5      S:X  d   eg )N   )r   r#   len)r%   ss     r&   test_process__hash__'TestSpecialMethods.test_process__hash__   s*    ^^v~~/01v{{rC    N)__name__
__module____qualname____firstlineno__r'   rE   r=   rA   rG   rK   rQ   rU   r\   r_   rb   re   rk   rn   rt   rz   __static_attributes__r|   rC   r&   r   r   ,   sS    # )- *$X,8)









rC   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestMisc   c                    [        [        5      nU H/  nUS;   a  M  UR                  S5      (       a  M#   [        U5        M1     [        R
                   H
  nX!;   a  M
   e   g ! [         at    U[        R
                  ;  a\  [        [        U5      nUc   M  UR                  b6  SUR                  R                  5       ;  a  U R                  U< S35      e M   M   M  f = f)N>   testr   testsPermissionErrorProcessLookupError_
deprecatedz not in psutil.__all__)
dirr   
startswith
__import__ImportError__all__getattr__doc__lowerfail)r%   
dir_psutilr+   funs       r&   test__all__TestMisc.test__all__   s    [
D   ??3''Ot$ 6 NND%%% # # 	O6>>1%fd3;$KK3 ,CKK4E4E4G G"&))th6L,M"NN !H 4 2	Os   A$$1C"A C"!C"c                     SR                  [        R                   Vs/ s H  n[        U5      PM     sn5      [        R                  :X  d   eg s  snf )N.)joinr   version_infor@   __version__)r%   xs     r&   test_versionTestMisc.test_version   sD    HHf&9&9:&9c!f&9:;!!"	
":s   Ac                 h    [         R                  " 5       nSUl        SUR                  5       ;  d   eg )N1rY   )r   r#   rY   as_dict)r%   r;   s     r&   !test_process_as_dict_no_new_names*TestMisc.test_process_as_dict_no_new_names   s)    NNAIIK'''rC   c                 t   S n[         R                  " 5       nU" [         R                  " 5       R                  5       5        [        U5      nUR	                  UR
                  SS9 H-  u  pEU R                  X%S9    U" 5       nU" U5        S S S 5        M/     [        5       nUR	                  UR
                  5       H5  u  pEUS;   a  M  U R                  US9    U" 5       nU" U5        S S S 5        M7     [        R                  " [        R                  " [         R                  " SSS	S
95      5      n[        U[         R                  5      (       d   eUR                  S:X  d   eUR                   S:X  d   eUR"                  S	:X  d   e[        R                  " [        R                  " [         R$                  " SSSS	S95      5      n[        U[         R$                  5      (       d   eUR                  S:X  d   eUR&                  S:X  d   eUR                   S:X  d   eUR"                  S	:X  d   e[        R                  " [        R                  " [         R                  " SSS	S
95      5      n[        U[         R                  5      (       d   eUR                  S:X  d   eUR                   S:X  d   eUR"                  S	:X  d   e[        R                  " [        R                  " [         R(                  " SSSS95      5      n[        U[         R(                  5      (       d   eUR*                  S:X  d   eUR                  S:X  d   eUR                   S:X  d   eg ! [         R                   a     GNf = f! , (       d  f       GM"  = f! [         R                   a     GNf = f! , (       d  f       GM  = f)Nc                     [         R                  " [         R                  " U 5      5        [        R                  " U 5      n[        R                  " U5      nX:X  d   eg N)jsonloadsdumpspickle)retabs      r&   check*TestMisc.test_serialization.<locals>.check   s:    JJtzz#'S!AQA8O8rC   T)clear_cache)procr+   >   win_service_getwin_service_iter)r+   i  r+   rO   )r0   r+   rO   *   )r0   r+   r[   rO   {   !   )secondsr0   r+   )r   r#   r   r   itergetterssubTestrF   r   r9   r   r   r   r"   
isinstancer0   r+   rO   r6   r[   rj   r   )r%   r   r   nsr   r+   r   r   s           r&   test_serializationTestMisc.test_serialization   s   	 ~~fnn&&()t$>IC43%C #J 43 ? ,IC>>4(%C #J )( - LLLL$$FF

 !V112222uu}}vvuu~~LLLL$$FO

 !V112222uu}}vv||vvuu~~LLLL,,6uMN
 !V001111uu||vvuu~~LLLL%%bdH

 !V223333yyBuu}}vvu ||  43" **  )(s`   ;M9=MM9N'N"N'M62M95M66M99
N		N$ N'#N$$N''
N7	c                    [         R                  R                  [        R                  S[        R
                  S9 n[        R                  " 5         UR                  (       d   e S S S 5        [         R                  R                  [        R                  S[        R                  " S5      S9 n[        R                  " 5         UR                  (       d   e S S S 5        [         R                  R                  [        R                  S[        S9 n[        R                  " [        5         [        R                  " 5         S S S 5        UR                  (       d   e S S S 5        [         R                  R                  [        R                  S[        R                  " S5      S9 nU R                  [        R                  5         [        R                  " 5         S S S 5        UR                  (       d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNC= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)N
_get_identr,   rw   )r   r4   r5   r   r#   r9   calledr6   
ValueErrorr   r   r"   assertRaises)r%   meths     r&   test_ad_on_process_creation$TestMisc.test_ad_on_process_creation@  s    ZZNNLf6I6I  
NN;;;	
 ZZNNLf6J6J16M  
NN;;;	
 ZZNNLj  
z*  +;;;
 ZZNNLf6J6J16M  
""6#7#78  9;;;
 
'
 

 
 +*
 
 98
 
s_   )H/)HH8-H'H8( II	I
H
H$'
H5	1H88
I	
I	I
I(c                 <   [         R                  " SSS9   [        R                  " [        5       n[        [        5        S S S 5        S[        WR                  5      R                  5       ;   d   e S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nzpsutil._psplatform.cext.versionz0.0.0return_valuezversion conflict)
r   r4   r   r   r   r   r   r@   valuer   )r%   cms     r&   test_sanity_version_check"TestMisc.test_sanity_version_check]  sm    ZZ-G
 {+rf% ,%RXX)<)<)>>>>
 
 ,+
 
s"   BA<1B<
B
	B
Br|   N)r}   r~   r   r   r   r   r   r   r   r   r   r|   rC   r&   r   r      s#    &@
(L \:?rC   r   c                   L    \ rS rSrS r\rSS jrS rS rS r	S r
S	 rS
 rSrg)TestMemoizeDecoratoril  c                     / U l         g r   callsr$   s    r&   setUpTestMemoizeDecorator.setUpm  s	    
rC   Nc                 J   [        S5       H+  nU" 5       nU R                  S0 4/:X  d   eUc  M$  XB:X  a  M+   e   [        S5       H/  nU" S5      nU R                  S0 4S0 4/:X  d   eUc  M(  XB:X  a  M/   e   [        S5       H3  nU" SSS9nU R                  S0 4S0 4SSS04/:X  d   eUc  M,  XB:X  a  M3   e   [        U R                  5      S:X  d   eUR                  5         U" 5       nUb  XB:X  d   e[        U R                  5      S:X  d   eUR                  S	:X  d   eg )
Nr   r|   rw   rw   barr         My docstring.)ranger   rx   cache_clearr   )r%   objexpected_retvalr   r   s        r&   run_against TestMemoizeDecorator.run_againstr  sE   qA%C::2r(+++*---	  qAa&C::2r(T2J!7777*---	  qAaQ-C::2r(T2Jqz8J!KKKK*---	  4::!###e&)))4::!###{{o---rC   c                 H   ^ [         U4S j5       nU mU R                  USS9  g )Nc                  >   > TR                   R                  X45        gr      r   appendargskwargs	baseclasss     r&   rY   /TestMemoizeDecorator.test_function.<locals>.foo  s     OO""D>2rC   r   r   )r	   r   )r%   rY   r   s     @r&   test_function"TestMemoizeDecorator.test_function  s/    		 
	
 	b1rC   c                    ^ [          " U4S jS5      5       nU mU R                  US S9  U" 5       R                  5       S:X  d   eg )Nc                   ,   > \ rS rSrSrU 4S jrS rSrg),TestMemoizeDecorator.test_class.<locals>.Fooi  r   c                 >   > TR                   R                  X45        g r   r   )r%   r   r   r   s      r&   __init__5TestMemoizeDecorator.test_class.<locals>.Foo.__init__  s    &&~6rC   c                     g)Nr   r|   r$   s    r&   r   0TestMemoizeDecorator.test_class.<locals>.Foo.bar  s    rC   r|   N)r}   r~   r   r   r   r   r   r   r   s   r&   Foor     s    7rC   r   r   r   )r	   r   r   r%   r   r   s     @r&   
test_classTestMemoizeDecorator.test_class  sJ    		 	 
	 	d3uyy{b   rC   c                 t   [          " S S5      5       nU" 5       U" 5       L d   e[        U" 5       5      [        U" 5       5      :X  d   e[        U" S5      5      [        U" S5      5      :X  d   e[        U" SSS95      [        U" SSS95      :X  d   e[        U" S5      5      [        U" S5      5      :w  d   eg )Nc                       \ rS rSrS rSrg)6TestMemoizeDecorator.test_class_singleton.<locals>.Bari  c                     g r   r|   )r%   r   r   s      r&   r   ?TestMemoizeDecorator.test_class_singleton.<locals>.Bar.__init__  s    rC   r|   N)r}   r~   r   r   r   r   r|   rC   r&   Barr    s    rC   r  rw   r   )rY   r   )r	   id)r%   r  s     r&   test_class_singleton)TestMemoizeDecorator.test_class_singleton  s    		 	 
	 u~~#%yBsuI%%%#a&zRAZ'''#aQ- Bs1!}$5555#a&zRAZ'''rC   c                 b   ^  " U4S jS5      nU mU R                  U" 5       R                  SS9  g )Nc                   6   > \ rS rSr\\U 4S j5       5       rSrg)3TestMemoizeDecorator.test_staticmethod.<locals>.Fooi  c                  >   > TR                   R                  X45        gr   r   r   s     r&   r   7TestMemoizeDecorator.test_staticmethod.<locals>.Foo.bar       &&~6rC   r|   N)r}   r~   r   r   staticmethodr	   r   r   r   s   r&   r   r
    s      rC   r   r   r   r   r   r   s     @r&   test_staticmethod&TestMemoizeDecorator.test_staticmethod  -    	 	 	B7rC   c                 b   ^  " U4S jS5      nU mU R                  U" 5       R                  SS9  g )Nc                   6   > \ rS rSr\\U 4S j5       5       rSrg)2TestMemoizeDecorator.test_classmethod.<locals>.Fooi  c                 >   > TR                   R                  X45        gr   r   )clsr   r   r   s      r&   r   6TestMemoizeDecorator.test_classmethod.<locals>.Foo.bar  r  rC   r|   N)r}   r~   r   r   classmethodr	   r   r   r   s   r&   r   r    s      rC   r   r   r   r  r   s     @r&   test_classmethod%TestMemoizeDecorator.test_classmethod  r  rC   c                   ^ [         U4S j5       n/ m[        S5       H&  nU" 5       nS0 4nX4:X  d   e[        T5      S:X  a  M&   e   [        S5       H'  nU" S5      nS0 4nX4:X  d   e[        T5      S:X  a  M'   e   [        S5       H(  nU" SSS9nSSS04nX4:X  d   e[        T5      S:X  a  M(   e   UR                  5         U" 5       nS0 4nX4:X  d   e[        T5      S	:X  d   eUR                  S
:X  d   eg )Nc                  ,   > TR                  S5        X4$ )Foo docstring.Nr   )r   r   r   s     r&   rY   /TestMemoizeDecorator.test_original.<locals>.foo  s     LL>!rC   r   r|   rw   r   r   r   r   r   r  )r	   r   rx   r   r   )r%   rY   r   r   expectedr   s        @r&   test_original"TestMemoizeDecorator.test_original  s    
	" 
	"
 qA%CBxH?"?u:?"?	  qAa&CbzH?"?u:?"?	  qAaQ-Cuaj)H?"?u:?"?	  	e85zQ{{....rC   r   r   )r}   r~   r   r   r   tearDownr   r   r   r  r  r  r"  r   r|   rC   r&   r   r   l  s1     H.:2!(
8
8#/rC   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestCommonModulei  c                   ^  " U4S jS5      nU" 5       n/ mUR                  5         UR                  5         [        T5      S:X  d   e/ mUR                   R                  U5        UR                  5         UR                  5         [        T5      S:X  d   e/ mUR                   R                  U5        UR                  5         UR                  5         [        T5      S:X  d   eg )Nc                   ,   > \ rS rSr\U 4S j5       rSrg)9TestCommonModule.test_memoize_when_activated.<locals>.Fooi  c                 (   > TR                  S 5        g r   r  )r%   r   s    r&   rY   =TestCommonModule.test_memoize_when_activated.<locals>.Foo.foo  s    T"rC   r|   N)r}   r~   r   r   r
   rY   r   r   s   r&   r   r)    s    ## $#rC   r   r   rw   )rY   rx   cache_activatecache_deactivate)r%   r   fr   s      @r&   test_memoize_when_activated,TestCommonModule.test_memoize_when_activated  s    	# 	#
 E		5zQ 	Q		5zQ 	q!		5zQrC   c                    S n[        S5      U" S5      S0:X  d   e[        S5      U" S5      SU" S5      S0:X  d   e[        S5      U" S5      SU" S5      S	0:X  d   e[        S
5      U" S5      SU" S5      S0:X  d   e[        S5      U" S5      S0:X  d   e[        S5      U" S5      S0:X  d   e[        S5      U" S5      S0:X  d   eg )Nc                 <    [         (       a  U R                  5       $ U $ r   )r   upper)ry   s    r&   k4TestCommonModule.test_parse_environ_block.<locals>.k  s     '1779.Q.rC   za=1 r   r   z	a=1 b=2  r   2za=1 b=  rJ   za=1 b=2  c=3 zxxx a=1 z	a=1 =b=2 za=1 b=2r   )r%   r4  s     r&   test_parse_environ_block)TestCommonModule.test_parse_environ_block  s    	/ #7+#}<<<">2cFCcFC7
 
 	
 
 #=1afc1S625NNNN"#67cFCcFC<
 
 	
 

 #<0QsVSMAAA"=1afc]BBB":.1S63-???rC   c                 n   U R                  [        R                  5        [        5       (       Ga  [        R                  " S5       nSUl        [        R                  " 5         [        5       (       a   e S S S 5        [        R                  " 5         [        R                  " S[        S9 n[        5       (       a   eUR                  (       d   e S S S 5        [        R                  " 5         [        R                  " S[        R                  S9 n[        5       (       a   e[        R                  " 5         UR                  (       d   e S S S 5        [        R                  " 5         [        R                  " S[        R                  S9 n[        5       (       a   e[        R                  " 5         UR                  (       d   e S S S 5        g [        R                  " [        5         [        R                  " [        R                  [        R                  5      n UR                  S5        UR                  5          S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN)= f! , (       d  f       g = f! UR                  5         f = f! , (       d  f       g = f)Nzpsutil._common.socketFzpsutil._common.socket.socketr,   z!psutil._common.socket.socket.bind)z::1r   )
addCleanupr   r   r   r4   has_ipv6OSErrorr   socketgaierrorr   r   AF_INET6SOCK_STREAMbindclose)r%   ry   socks      r&   test_supports_ipv6#TestCommonModule.test_supports_ipv6#  s   112??34"
))+(??**? 5
 %%'.G(??**xxx	 %%'.FOO(??**))+xxx %%'3"OO (??**))+xxx  w'}}V__f6H6HI!IIj)JJL ('; 54    JJL ('sT   .I
+%I:I.:J *4J&J0J&

I
I+.
I= 
JJ##J&&
J4c                    [         R                  R                  [        5      n[	        U5      (       d   e[	        [         R                  R                  U5      5      (       a   e[        R                  " S[        S9   [        R                  " [        5         [	        U5        S S S 5        S S S 5        [        R                  " S[        S9   [	        U5      (       a   e S S S 5        [        R                  " SSS9   [	        U5      (       a   e S S S 5        g ! , (       d  f       N}= f! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       g = f)Nzpsutil._common.os.statr,   zpsutil._common.stat.S_ISREGFr   )r7   pathabspath__file__r   dirnamer   r4   r   r   r   r<  FileNotFoundError)r%   	this_files     r&   test_isfile_strict#TestCommonModule.test_isfile_strictJ  s    GGOOH-	Y'''' !;<<<<ZZ0oNw'i( ( O ZZ$2C
 %Y/////
 ZZ5EJ$Y///// KJ (' ON
 
 KJs<   >D-D%D-D>?E
D*	&D--
D;>
E
Ec                 ,   [         R                  R                  [        R                  SS5         [
        R                  " [        R                  " 5       5       n[        S5        [        R                  R                  5         S S S 5        S S S 5        WR                  5       nUR                  S5      (       d   U5       eSU;   d   e[        R!                  SS5      U;   d   e[         R                  R                  [        R                  SS5         [
        R                  " [        R                  " 5       5       n[        [#        S5      5        S S S 5        S S S 5        UR                  5       nSU;   d   eS	U;   d   e[         R                  R                  [        R                  SS5         [
        R                  " [        R                  " 5       5       n[%        S
S5      nSUl        [        U5        S S S 5        S S S 5        UR                  5       nSU;   d   eSU;   d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)NPSUTIL_DEBUGThellozpsutil-debugz.pycz.pyzthis is an errorzignoring ValueErrorz'this is an error'r   zno such filez/foo)r   r4   r5   r   _common
contextlibredirect_stderrioStringIOr   sysstderrflushgetvaluer   rI  r1   r   r<  filename)r%   r.  rO   excs       r&   
test_debugTestCommonModule.test_debugX  s   ZZv~~~tD++BKKM:ag

  " ; E jjl~~n--2s2-#~~.#555 ZZv~~~tD++BKKM:aj!345 ; E jjl$+++#s*** ZZv~~~tD++BKKM:aa0%c
 ; E
 jjl$$$}}1 ;: ED ;: ED ;: EDsk   *H>*H,H>*I">II"2*JI4;J,
H;	6H>>
I
I	I""
I14
J	>J
Jc                 *   U R                  5       n[        US5       nUR                  S5        S S S 5        [        U5      S:X  d   e[	        U5      S:X  d   e[
        R                  " [        5         [        US-   5        S S S 5        [
        R                  " [        5         [	        US-   5        S S S 5        [        US-   SS9S:X  d   e[	        US-   SS9S:X  d   eg ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       NW= f)NwrY   s   fooz-invalidr   )fallback)
get_testfnopenwriter   r   r   r   rK  )r%   testfnr.  s      r&   test_cat_bcatTestCommonModule.test_cat_bcatt  s    "&#!GGEN 6{e###F|v%%%]],-#$ .]],-*$% .6J&75@@@FZ'%8EAAA  .---s#   C"3C3$D"
C03
D
Dr|   N)r}   r~   r   r   r/  r7  rD  rM  r]  rf  r   r|   rC   r&   r&  r&    s#    4@*%!N08BrC   r&  rY   za b cc                       \ rS rSrS r\rS rS rS rS r	S r
S rS	 rS
 rS rS rS rS r\R&                  R)                  \(       + SS9S 5       rSrg)TestWrapNumbersi  c                 .    [         R                  " 5         g r   )r   r   r$   s    r&   r   TestWrapNumbers.setUp  s      "rC   c                 F    S[        SSS5      0n[        US5      U:X  d   eg Ndisk1rh   disk_iontr   r%   inputs     r&   test_first_callTestWrapNumbers.test_first_call  s)    "Q1+&E9-666rC   c                 j    S[        SSS5      0n[        US5      U:X  d   e[        US5      U:X  d   eg rm  rp  rr  s     r&   test_input_hasnt_changed(TestWrapNumbers.test_input_hasnt_changed  s>    "Q1+&E9-666E9-666rC   c                    S[        SSS5      0n[        US5      U:X  d   eS[        SSS5      0n[        US5      U:X  d   eS[        SSS5      0n[        US5      U:X  d   eS[        SSS5      0n[        US5      U:X  d   eg )	Nrn  rh   ro  
               rp  rr  s     r&   test_increase_but_no_wrap)TestWrapNumbers.test_increase_but_no_wrap  s    "Q1+&E9-666"RR.)E9-666"RR.)E9-666"RR.)E9-666rC   c                 &   S[        SSS5      0n[        US5      U:X  d   eS[        SSS5      0n[        US5      S[        SSS5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS	5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS	5      0:X  d   eS[        S
SS5      0n[        US5      S[        SSS	5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS	5      0:X  d   eS[        SSS5      0n[        US5      S[        SSS	5      0:X  d   eg )Nrn  d   ro  rz  n   Z      r|     2      (   rp  rr  s     r&   	test_wrapTestWrapNumbers.test_wrap  s   "S#s+,E9-666"S#r*+E9-'2c3;L1MMMM"S#r*+E9-'2c3;L1MMMM"S#r*+E9-'2c3;L1MMMM"S#r*+E9-'2c3;L1MMMM"S#r*+E9-'2c3;L1MMMM"Rb/*E9-'2c3;L1MMMM"Rb/*E9-'2c3;L1MMMM"Rb/*E9-'2c3;L1MMMMrC   c                     S[        SSS5      0n[        US5      U:X  d   e[        SSS5      [        SSS5      S.n[        US5      U:X  d   eS[        SSS5      0n[        US5      U:X  d   eg )Nrn  rh   ro     rn  disk2   rp  rr  s     r&   test_changing_keys"TestWrapNumbers.test_changing_keys  s     "Q1+&E9-666Q1+1a<E9-666"Q1+&E9-666rC   c                 l   [        SSS5      [        SSS5      S.n[        US5      U:X  d   e[        SSS5      [        SSS5      S.n[        US5      [        SSS5      [        SSS5      S.:X  d   eS[        SSS5      0n[        US5      U:X  d   e[        SSS5      [        SSS5      S.n[        US5      U:X  d   e[        SSS5      [        SSS5      S.n[        US5      U:X  d   e[        SSS5      [        SSS5      S.n[        US5      [        SSS5      [        SSS5      S.:X  d   eg )Nr  r  r  ro  rz  r  rn  rp  rr  s     r&   test_changing_keys_w_wrap)TestWrapNumbers.test_changing_keys_w_wrap  s]   RR.2c33DEE9-666RR.2c33CDE9-B^S#&2
 
 	
 

 "RR.)E9-666 RR.2c33DEE9-666RR.2c33DEE9-666RR.2c33CDE9-B^S#&2
 
 	
 
rC   c                     SSSSS.n[        US5      U:X  d   e[        US5      U:X  d   eSSSSS.n[        US5      nUS   S	   S
:X  d   eg )N)	i,      #  R       ȷ  )	i  r   i tU i   i  r   r   r   r  )	6   r  i $ i N r      r~  i     )	iU	  i  i"  r  i  i4  i  i  i\  )nvme0n1	nvme0n1p1	nvme0n1p2	nvme0n1p3ro  )	r  r  r  r  r  r  r  r  r  r  r   i  r   )r%   douts      r&   test_real_dataTestWrapNumbers.test_real_data  s|    MBHL	
 Ay)Q...Ay)Q... NBHL	
 1i(9~a C'''rC   c                     S[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eUS   S0 0:X  d   eUS   S0 0:X  d   eg )Nrn  rh   ro  r   rw   r   rq  r   
cache_infor%   rs  caches      r&   test_cache_first_call%TestWrapNumbers.test_cache_first_call  so    "Q1+&UI&'')QxIu----QxIr?***QxIr?***rC   c                     S[        SSS5      0n[        US5        S[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eUS   SSSSS.0:X  d   eUS   S0 0:X  d   eg )	Nrn  rh   ro  rz  r   rw   )rn  r   )rn  rw   rn  r   r   r  r  s      r&   test_cache_call_twice%TestWrapNumbers.test_cache_call_twice  s    "Q1+&UI&"RR.)UI&'')QxIu----QxaqJ
 
 	
 
 QxIr?***rC   c                    S[        SSS5      0n[        US5        S[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eUS   SSSSS.0:X  d   eUS   SSS	100:X  d   eS
 nS[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eU" 5         S[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eU" 5         S[        SSS5      0n[        US5        [        R                  " 5       nUS   SU0:X  d   eUS   SSSSS.0:X  d   eUS   SSS	100:X  d   eg )Nrn  r  ro  rz  r   rw   r  r   r  c                  p    [         R                  " 5       n U S   SSSSS.0:X  d   eU S   SSS100:X  d   eg )	Nrw   ro  r   r  r  r   rn  r  )r   r  )r  s    r&   check_cache_info9TestWrapNumbers.test_cache_wrap.<locals>.check_cache_info  s\     ++-E8"#"#"%     8	Gl^+DEEEErC   r  r|  r  r  )r%   rs  r  r  s       r&   test_cache_wrapTestWrapNumbers.test_cache_wrap  s   "S#s+,UI& "S#r*+UI&'')QxIu----QxaqL
 
 	
 
 QxI,'@AAAA		F "S#r*+UI&'')QxIu---- "S#r*+UI&'')QxIu---- "S#r*+UI&'')QxIu----QxaqL
 
 	
 
 QxI,'@AAAArC   c                    S[        SSS5      0n[        US5        [        SSS5      [        SSS5      S.n[        US5        [        R                  " 5       nUS   SU0:X  d   eUS   SSSSS.0:X  d   eUS	   S0 0:X  d   eg )
Nrn  rh   ro  r  r  r   rw   r  r   r  r  s      r&   test_cache_changing_keys(TestWrapNumbers.test_cache_changing_keysA  s    "Q1+&UI&Q1+1a<UI&'')QxIu----QxaqJ
 
 	
 
 QxIr?***rC   c                    S[        SSS5      0n[        US5        [        US5        [        R                  " S5        [        R                  " 5       0 0 0 4:X  d   e[        R                  " S5        [        R                  " S5        g )Nrn  rh   ro  z?!?)rq  r   r   r  rr  s     r&   test_cache_clear TestWrapNumbers.test_cache_clearM  so    "Q1+&UI&UI&  +&&(RRL888  +  'rC   znot supported)reasonc                 \   [         R                  " 5       (       a  [         R                  " 5       (       d  [        R                  " S5      e[         R                  " 5         [         R                  " 5         [
        R                  " 5       nU H  nSU;   d   eSU;   a  M   e   [         R                  R                  5         [
        R                  " 5       nU H  nSU;   d   eSU;  a  M   e   [         R                  R                  5         [
        R                  " 5       nU0 0 0 4:X  d   eg )Nzno disks or NICs availablezpsutil.disk_io_counterszpsutil.net_io_counters)r   disk_io_countersnet_io_countersr   skipr   r  r   )r%   cachesr  s      r&   test_cache_clear_public_apis,TestWrapNumbers.test_cache_clear_public_apisV  s    &&((0F0F0H0H++:;;! ((*E,555+u444  	++-((*E+u444,E999  	**,((*"b"%%%rC   r|   N)r}   r~   r   r   r   r$  rt  rw  r  r  r  r  r  r  r  r  r  r  r   markskipifr   r  r   r|   rC   r&   ri  ri    sz    # H77
7N:	7
6(*+
+0Bd
+( [[//H& I&rC   ri  )%r   collectionsrS  rU  r   r7   r   r=  rW  unittestr   r   psutil.testsr   psutil._commonr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r&  
namedtuplerq  ri  r|   rC   r&   <module>r     s       	  	   
         ( " 1 . ( ' , ' *  & )Q Qr_?~ _?ND/> D/NLB~ LBh E7+_&n _&rC   