
    I&JjA                    2   S SK Jr  S SKrS SKJs  Jr  S SKrS SK	r	S SK
r
S SKrS SKJr  \	R                  R                  S \" \" \5      R%                  5       R&                  S   S-  5      5        S SK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)    )annotationsN)Path   srcc                    [         R                  " 5       n SoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pS	oU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pS
oU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pU S   n[        U[        5      of(       d  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVU S   n[        U[        5      of(       d  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVU S	   n[        U[        5      of(       d  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVg )Nusage_percentinz%(py1)s in %(py3)srespy1py3assert %(py5)spy5coresload_averagesteal_percentiowait_percent5assert %(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
}
isinstancefloatpy0py2r   r   intlist)metricscollect_cpu
@pytest_ar_call_reprcompare	_saferepr@py_builtinslocals_should_repr_global_nameAssertionError_format_explanationr   r   r   r   )r   @py_assert0@py_assert2@py_format4@py_format6@py_assert1@py_assert4s          8D:\Programs\laragon\www\wolf\agent\tests\test_metrics.pytest_collect_cpur/      sp   



C!c!!!!!?!!!?!!!!!!c!!!!c!!!!!!!c>77cc S     >   >      S    S       !c!!!!!?!!!?!!!!!!c!!!!c!!!!!!!"s""""""""""""""s""""s"""""""/*2:*E222222222:2222:222*222222E2222E2222222222'l(:lC(((((((((:((((:(((l((((((C((((C((((((((((.)0:)4000000000:0000:000)0000004000040000000000    c                    [         R                  " 5       n SoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pS	oU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pS
oU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pU S   n[        U[        5      of(       d  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVSoS   oqU;   o"(       do  [        R                  " SU4SX45      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=p'g )Ntotalr	   r   r   r   r   r   usedfreecachedbuffersswapr   r   dictr   )z%(py1)s in %(py4)s)r   py4zassert %(py6)spy6)r   collect_ramr    r!   r"   r#   r$   r%   r&   r'   r   r8   )
r   r(   r)   r*   r+   r,   r-   @py_assert3@py_format5@py_format7s
             r.   test_collect_ramr?      s   



Cc>77ccS=66SSS=66SSs?88ss99S=66SS&k(:k4(((((((((:((((:(((k((((((4((((4((((((((((!&k!k!!!!!7!!!7!!!k!!!!!!!r0   c                 	   [         R                  " 5       n [        U [        5      o(       Gd+  SS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS nU (       Ga  U S   nSoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pEg g )N5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}r   r   r   r   r   r   r9   r   mount_pointr	   r   itemr   r   r   r2   r3   r4   inodes_total)r   collect_diskr   r   r#   r$   r    r%   r"   r&   r'   r!   r   r<   r=   rD   r(   r)   r*   r+   s           r.   test_collect_diskrH   '   sy   



 Cc4         :    :      c    c      4    4          
1v$$$$$$}$$$}$$$$$$$$$$$$$$$$$$ww$$~vv~vv%%%%%%~%%%~%%%%%%%%%%%%%%%%% r0   c                 r   [         R                  " 5       n [        U [        5      o(       Gd+  SS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS nU (       Ga  U S   nSoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pESoDU;   oU(       d  [        R                  " SU4S	XC45      [        R                  " U5      S
[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS
S.-  nSSU0-  n[        [        R                  " U5      5      eS =pEg g )NrA   r   r   r   rB   r   	interfacer	   r   rD   r   r   r   rx_bytestx_bytesrx_rate_bps)r   collect_networkr   r   r#   r$   r    r%   r"   r&   r'   r!   rG   s           r.   test_collect_networkrO   3   s!   

!
!
#Cc4         :    :      c    c      4    4          
1v"d"""""{"""{""""""d""""d"""""""!T!!!!!z!!!z!!!!!!T!!!!T!!!!!!!!T!!!!!z!!!z!!!!!!T!!!!T!!!!!!!$$$$$$}$$$}$$$$$$$$$$$$$$$$$ r0   c                    [         R                  " 5       n SoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU ;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pU S   n[        U[        5      of(       d  S	S
[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS
[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVU S   n[        U[        5      of(       d  S	S
[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS
[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pVU S   (       Ga  U S   S   nSoU;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pSoU;   o"(       d  [        R                  " SU4SX45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =pg g )Ntop_cpur	   r   r   r   r   r   top_ramr   r   r   r   r   pidprocnamecpuram)r   collect_processr    r!   r"   r#   r$   r%   r&   r'   r   r   )r   r(   r)   r*   r+   r,   r-   rT   s           r.   test_collect_processrY   >   sV   

!
!
#C9999)n+:nd+++++++++:++++:+++n++++++d++++d++++++++++)n+:nd+++++++++:++++:+++n++++++d++++d++++++++++
9~~9~a }uu~vv}uu}uu r0   c                    [         R                  " 5       n [        U [        5      o(       Gd+  SS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS nSo3U ;   oD(       d  [        R                  " SU4SX045      [        R                  " U5      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS	.-  nS
SU0-  n[        [        R                  " U5      5      eS =p4So3U ;   oD(       d  [        R                  " SU4SX045      [        R                  " U5      S[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS	.-  nS
SU0-  n[        [        R                  " U5      5      eS =p4g )NrA   r   r   r8   rB   nginxr	   r   r   r   r   mysql)r   collect_servicesr   r8   r#   r$   r    r%   r"   r&   r'   r!   )r   r<   r=   r(   r)   r*   r+   s          r.   test_collect_servicesr^   L   sX   

"
"
$Cc4         :    :      c    c      4    4          c>77ccc>77ccr0   c                    [         R                  " 5       n [        U [        5      o(       Gd+  SS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS ng NrA   r   r   r   rB   )r   collect_dockerr   r   r#   r$   r    r%   r"   r&   r'   r   r<   r=   s      r.   test_collect_dockerrc   S   s    

 
 
"Cc4         :    :      c    c      4    4          r0   c                    [         R                  " 5       n [        U [        5      o(       Gd+  SS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS[        R
                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS ng r`   )r   collect_sslr   r   r#   r$   r    r%   r"   r&   r'   rb   s      r.   test_collect_sslrf   X   s    



Cc4         :    :      c    c      4    4          r0   c                    [         R                  " SS9n S H  nX;   o"(       d  [        R                  " SU4SX45      S[        R
                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS[        R
                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS.-  nS	S
U0-  n[        [        R                  " U5      5      eS nM     g )Ng       @)timeout)
rV   rW   disknetworkprocessservicesdockerssldisk_iouptimer	   )z%(py0)s in %(py2)skeyr   r   r   assert %(py4)sr9   )
r   collect_allr    r!   r#   r$   r%   r"   r&   r'   )r   rq   r,   @py_format3r=   s        r.   test_collect_allrv   ]   s    


c
*Cmzssscc nr0   c                    [         R                  " SS9  [        R                  " S5        [         R                  " 5       n U (       dp  SSS[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS0-  n[        [        R                  " U5      5      eSo"U ;   o3(       d  [        R                  " SU4S	X 45      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OSS
.-  nSSU0-  n[        [        R                  " U5      5      eS =p#[         R                  " 5         g )Nr   )intervalg?zassert %(py0)sr   mrV   r	   r   r   r   r   )r   start_updatertimesleepget_metricsr#   r$   r    r%   r"   r&   r'   r!   stop_updater)ry   @py_format1r(   r)   r*   r+   s         r.   test_caching_and_updaterr   c   s    1%JJsOAHHHHHH1HHHH1HHHHHHA:55AAr0   c                 <   [         R                  n So" U5      nSo2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pC[         R                  n S	o" U5      nS
o2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pC[         R                  n So" U5      nSo2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pC[         R                  n So" U5      nSo2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pC[         R                  n So" U5      nSo2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pC[         R                  n So" U5      nSo2U:H  oD(       d  [        R                  " SU4SX#45      S[        R
                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n =n=n=pCg )Nzmysql -u root -pSecret123zmysql -u root -p***==)zV%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.sanitize_cmdline
}(%(py4)s)
} == %(py9)sr   )r   r   r9   r:   py9zassert %(py11)spy11z"mysql -u root --password=Secret123zmysql -u root --password=***zpython app.py --token 123456zpython app.py --token ***z(curl -H 'Authorization: Bearer my-token'z#curl -H 'Authorization: Bearer ***'zcmd --pwd=123 --secret:456zcmd --pwd=*** --secret:*** )
r   sanitize_cmdliner    r!   r#   r$   r%   r"   r&   r'   )r,   r<   @py_assert5@py_assert8@py_assert7@py_format10@py_format12s          r.   test_sanitize_cmdliner   m   s   ##Y$?Y#$?@YDYYDYYYYYY@YYYYYY7YYYY7YYY#YYY$?YYY@YYYDYYYYYYYY##k$Hk#$HIkMkkMkkkkkkIkkkkkk7kkkk7kkk#kkk$HkkkIkkkMkkkkkkkk##b$Bb#$BCbGbbGbbbbbbCbbbbbb7bbbb7bbb#bbb$BbbbCbbbGbbbbbbbb##x$Nx#$NOxSxxSxxxxxxOxxxxxx7xxxx7xxx#xxx$NxxxOxxxSxxxxxxxx##a$@a#$@AaEaaEaaaaaaAaaaaaa7aaaa7aaa#aaa$@aaaAaaaEaaaaaaaa##-B-#B'-2-2-----'------7----7---#---B---'---2--------r0   c                 `   S [         l        S[         l        [         R                  " 5       n SSSS./nU[         l        [        R                  " 5       [         l        [         R                  " 5       nX!:H  o3(       d  [
        R                  " SU4SX!45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OSS	[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OS	S
.-  nSSU0-  n[        [
        R                  " U5      5      eS nS [         l        S[         l        [         R                  " 5       nSS S	S./nU[         l        [        R                  " 5       [         l        [         R                  " 5       nX:H  o3(       d  [
        R                  " SU4SX45      S[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OSS[        R                  " 5       ;   d  [
        R                  " U5      (       a  [
        R                  " U5      OSS
.-  nSSU0-  n[        [
        R                  " U5      5      eS ng )Ng        	dummy_ciddummy_containerrunning)idrU   statusr   )z%(py0)s == %(py2)sres2dummyrr   rs   r9   z/etc/ssl/certs/dummy.pem)pathexpireissuerres4	dummy_ssl)r   _docker_cache_data_docker_cache_timera   r{   r    r!   r#   r$   r%   r"   r&   r'   _ssl_cache_data_ssl_cache_timere   )	res1r   r   r,   ru   r=   res3r   r   s	            r.    test_slow_collectors_caching_ttlr   v   s   !%G!$G !!#D  ):iPQE!&G!%G!!#D=44455 #G!G D4PWXYI'G"iikG D44499r0   )!
__future__r   builtinsr#   _pytest.assertion.rewrite	assertionrewriter    ossysr{   pytestpathlibr   r   insertstr__file__resolveparentsr   r/   r?   rH   rO   rY   r^   rc   rf   rv   r   r   r    r0   r.   <module>r      s    "   	 
    3tH~--/77:UBC D 	1	"	&%!
!
.r0   