
    SLj                    ~   S SK Jr  S SKrS SKJs  Jr  S SKJ	r	J
r
  S SKrS SKrS SKJrJrJrJr  \
" S5      S 5       r\
" S5      S 5       r\
" S5      S 5       rS	 rS
 r\
" S5      S 5       r\
" S5      S 5       r\
" S5      S 5       r\
" S5      S 5       r\
" SSS9\
" S5      S 5       5       r\
" S5      S 5       rg)    )annotationsN)	MagicMockpatch)handle_service_starthandle_service_stophandle_service_restarthandle_service_statuszsubprocess.runc           	     ~   [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCSo!S   o2U;   oD(       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=pCU R                  / SQSSSSS0SS9  g )Nr    
returncodestdoutstderrservicenginxsuccessTisz%(py1)s is %(py4)spy1py4assert %(py6)spy6zstarted successfullymessageinz%(py1)s in %(py4)s	systemctlstartr      LC_ALLCFcapture_outputtexttimeoutenvcheck)	r   return_valuer   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationassert_called_once_withmock_runres@py_assert0@py_assert3@py_assert2@py_format5@py_format7s          @D:\Programs\laragon\www\wolf\agent\tests\test_actions_service.pytest_service_start_successr;      s    %2bIH
	73
4Cy>!T!T!!!!!>!!!>!!!T!!!!!!!!3^3^33333!333!333^3333333$$'sO %     c                P   [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCUS   nSo2U:H  oD(       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=pCg )N   r   z
Job failedr   r   r   r   Fr   r   r   r   r   error==z%(py1)s == %(py4)s)r   r+   r   r,   r-   r.   r/   r0   r2   s          r:   test_service_start_failurerC      s    %2lSH
	73
4Cy>"U"U""""">""">"""U"""""""w<'<'<'''''<'''<'''<'''''''r<   c                   [         R                  " / SQSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCSo!S   o3R                  ow" 5       oU;   oD(       d  [        R
                  " SU4SX(45      [        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=pxg )Nr   r"   )r(   r   r   r   Fr   r   r   r   r   zcommand failedr?   r   )zD%(py1)s in %(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py4)s.lower
}()
})r   r   r   py8zassert %(py10)spy10)

subprocessTimeoutExpiredside_effectr   r,   r-   r.   r/   r0   lower)r3   r4   r5   r6   r7   r8   r9   @py_assert5@py_assert7@py_format9@py_format11s              r:   test_service_start_timeoutrO   '   s    %445T^`aH
	73
4Cy>"U"U""""">""">"""U"""""""37|3113133333333333333|3331333333333333r<   c                 .   [        SS05      n U S   nSo!UL o3(       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=p2S
oS   o!U;   o3(       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=p2g )Nr   znginx; rm -rf /r   Fr   r   r   r   r   zInvalid service name formatr?   r   r   r   r,   r-   r.   r/   r0   r4   r5   r6   r7   r8   r9   s         r:    test_service_invalid_name_formatrS   /   s    
	+<=
>Cy>"U"U""""">""">"""U"""""""(8L8L88888(888(888L8888888r<   c                 .   [        SS05      n U S   nSo!UL o3(       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=p2S
oS   o!U;   o3(       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=p2g )Nr   zsystemd-udevdr   Fr   r   r   r   r   znot in the whitelistr?   r   r   rQ   rR   s         r:   test_service_not_whitelistedrU   5   s    
	?;
<Cy>"U"U""""">""">"""U"""""""!1\1\11111!111!111\1111111r<   c           	     ~   [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCSo!S   o2U;   oD(       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=pCU R                  / SQSSSSS0SS9  g )Nr   r   r   r   mysqlr   Tr   r   r   r   r   zstopped successfullyr   r   r   )r    stoprW   r"   r#   r$   Fr%   )	r   r+   r   r,   r-   r.   r/   r0   r1   r2   s          r:   test_service_stop_successrY   ;   s    %2bIH
y'2
3Cy>!T!T!!!!!>!!!>!!!T!!!!!!!!3^3^33333!333!333^3333333$$&sO % r<   c           	     ~   [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCSo!S   o2U;   oD(       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=pCU R                  / SQSSSSS0SS9  g )Nr   r   r   r   redisr   Tr   r   r   r   r   zrestarted successfullyr   r   r   )r    restartr[   r"   r#   r$   Fr%   )	r   r+   r   r,   r-   r.   r/   r0   r1   r2   s          r:   test_service_restart_successr]   L   s    %2bIH
 )W!5
6Cy>!T!T!!!!!>!!!>!!!T!!!!!!!#59~5~55555#555#555~5555555$$)sO % r<   c           	        [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCUS   nSo2U:H  oD(       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=pCUS   nSo2U:H  oD(       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=pCU R                  / SQSSSSS0SS9  g )Nr   z$ActiveState=active
SubState=running
r   r   r   r   r   Tr   r   r   r   r   statusactiver@   rB   	sub_staterunning)r    showzS--property=ActiveState,SubState,MainPID,MemoryCurrent,ActiveEnterTimestampMonotonicr   r"   r#   r$   Fr%   )	r   r+   r	   r,   r-   r.   r/   r0   r1   r2   s          r:   "test_service_status_active_runningrd   ]   s<   %7H  G 4
5Cy>!T!T!!!!!>!!!>!!!T!!!!!!!x=$H$H$$$$$=$$$=$$$H$$$$$$${(y(y(((((((((((y((((((($$}sO % r<   c                r   [        SSSS9U l        [        SS05      nUS   nSo2UL oD(       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=pCUS   nSo2U:H  oD(       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=pCUS   nSo2U:H  oD(       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=pCUS   nS o2UL oD(       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=pCUS   nS o2UL oD(       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=pCUS   nS o2UL oD(       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=pCg )Nr   z#ActiveState=inactive
SubState=dead
r   r   r   dockerr   Tr   r   r   r   r   r_   inactiver@   rB   ra   deadpidmemory_bytesuptime_secondsr   r+   r	   r,   r-   r.   r/   r0   r2   s          r:   !test_service_status_inactive_deadrm   s   s   %6H  H 5
6Cy>!T!T!!!!!>!!!>!!!T!!!!!!!x=&J&J&&&&&=&&&=&&&J&&&&&&&{%v%v%%%%%%%%%%%v%%%%%%%u:::~&$&$&&&&&&&&&&&$&&&&&&& (D(D((((( ((( (((D(((((((r<   zbuiltins.openT)createc                   [        SSSS9U l        [        5       nSUR                  l        X!R                  R                  l        [	        SS05      nUS   nS	oTUL of(       do  [
        R                  " S
U4SXE45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peUS   nSoTU:H  of(       do  [
        R                  " SU4SXE45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peUS   nSoTU:H  of(       do  [
        R                  " SU4SXE45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peUS   nSoTU:H  of(       do  [
        R                  " SU4SXE45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n[        [
        R                  " U5      5      eS =n=peg )Nr   zoActiveState=active
SubState=running
MainPID=1234
MemoryCurrent=52428800
ActiveEnterTimestampMonotonic=90000000
r   r   z100.00 380.00
r   r   r   Tr   r   r   r   r   ri   i  r@   rB   rj   i   rk   g      $@)
r   r+   readline	__enter__r	   r,   r-   r.   r/   r0   )	r3   	mock_openhandler4   r5   r6   r7   r8   r9   s	            r:   -test_service_status_reports_pid_memory_uptimert      s    &O H [F#4FOO 4:$$1
G 4
5Cy>!T!T!!!!!>!!!>!!!T!!!!!!!u:::~*(*(***********(******* (D(D((((( ((( (((D(((((((r<   c                N   [        SSSS9U l        [        SS05      nUS   nS o2UL oD(       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=pCUS   nS o2UL oD(       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=pCg )Nr   zEActiveState=inactive
SubState=dead
MainPID=0
MemoryCurrent=[not set]
r   r   r   r[   ri   r   r   r   r   r   rj   rl   r2   s          r:   $test_service_status_zero_pid_is_nullrv      s    %ZH
  G 4
5Cu:::~&$&$&&&&&&&&&&&$&&&&&&&r<   )
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewriter,   unittest.mockr   r   rG   pytestactions.servicer   r   r   r	   r;   rC   rO   rS   rU   rY   r]   rd   rm   rt   rv    r<   r:   <module>r      s#   "    *       ( ( 4 492        * ) )" t$)  %)* ' 'r<   