
    vDj                        S SK rS SKJs  Jr  S SKrS SKJr  \R                  R                  S \" \" \5      R                  5       R                  S   S-  5      5        S SKJrJr  S SKrS SKrS SKJrJr  S rS rS	 rS
 rS rS rS SKJr  S r\ S:X  a  S SK!r!\"" \#" 5       RI                  5       5       V Vs/ sH  u  pU RK                  S5      (       d  M  UPM!     snn r&S r'\& HI  r( S\(RR                  RT                  ;   a  \(" \" S5      5        O\(" 5         \+" S\(R@                   35        MK     \R\                  " \'(       a  SOS 5        ggs  snn f ! \, a/    \'S-  r'\+" S\(R@                   35        \!RZ                  " 5          M  f = f)    N)Path   src)handle_cron_createhandle_cron_delete)	MagicMockpatchc           
         Sn[        SUS9 n[        S5       nSSSS.n[        X@S	9nUS
   nSovUL o(       do  [        R                  " SU4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pUS   nSovU:H  o(       do  [        R                  " SU4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pUR                  5         SnUR                  U5        [        U R                  S5      5      n[        U5      nSoU:H  o(       Gd  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=pUS   ofR                  nSo" US 9nUU:H  nU(       d  [        R                  " SU4S!UU45      [        R                  " U5      [        R                  " U5      [        R                  " U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 =n=n=n=nnS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)&N* * * * * original_command
actions.cron.read_crontabreturn_valueactions.cron.write_crontabz*/5 * * * *echo 1zwolfpanel-managed:cmd_123schedulecommandcomment
backup_dirsuccessTisz%(py1)s is %(py4)spy1py4assert %(py6)spy6cron_idcmd_123==z%(py1)s == %(py4)szB* * * * * original_command
*/5 * * * * echo 1 # wolfpanel:cmd_123
crontab_*.bakr   z0%(py3)s
{%(py3)s = %(py0)s(%(py1)s)
} == %(py6)slenbackupspy0r   py3r   assert %(py8)spy8r   utf-8encodingzX%(py7)s
{%(py7)s = %(py3)s
{%(py3)s = %(py1)s.read_text
}(encoding=%(py5)s)
} == %(py9)sexisting_crontabr   r+   py5py7py9assert %(py11)spy11)r	   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationassert_called_onceassert_called_once_withlistglobr'   @py_builtinslocals_should_repr_global_name	read_texttmp_pathr2   	mock_read
mock_writepayloadres@py_assert0@py_assert3@py_assert2@py_format5@py_format7expected_new_crontabr(   @py_assert5@py_assert4@py_format9@py_assert6@py_assert8@py_format10@py_format12s                       =D:\Programs\laragon\www\wolf\agent\tests\test_actions_cron.pytest_cron_create_successrZ      sl   5	*9I	Ji	+	,
 &2

 !>9~%%%%%%%~%%%~%%%%%%%%%%9~*******~***~********** 	$$&  f**+?@ x}}_567| q q     |      s    s      7    7   |   q       qzI##IWI#W5I59IIIIII59IIIIzIII#IIIWIII5IIIIII9IIIII9IIIIIIIII- 
- 
K	J	,	, 
K	Js#   ONN<+O<
O
	O
Oc           
         Sn[        SUS9 n[        S5       nSS0n[        X@S9nUS   nS	ovUL o(       do  [        R                  " S
U4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pUS   nSovU:H  o(       do  [        R                  " SU4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pSnUR                  U5        [        U R                  S5      5      n[        U5      nSoU:H  o(       Gd  [        R                  " SU4SX45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S.-  n
SSU
0-  n[        [        R                  " U5      5      eS =n=pUS   ofR                  nSo" US9nUU:H  nU(       d  [        R                  " SU4SUU45      [        R                  " U5      [        R                  " U5      [        R                  " U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 =n=n=n=nnS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)#NzZ* * * * * original_command
*/5 * * * * echo 1 # wolfpanel:cmd_123
1 2 3 4 5 other_command
r   r   r   
command_idr!   r   r   Tr   r   r   r   r   r    r"   r$   3* * * * * original_command
1 2 3 4 5 other_command
r%   r   r&   r'   r(   r)   r,   r-   r   r.   r/   r1   r2   r3   r7   r8   )r	   r   r9   r:   r;   r<   r=   r?   r@   rA   r'   rB   rC   rD   rE   rF   s                       rY   test_cron_delete_successr^   +   s]   	$  
*9I	Ji	+	,
+ >9~%%%%%%%~%%%~%%%%%%%%%%9~*******~***~**********( 	 	**+?@ x}}_567| q q     |      s    s      7    7   |   q       qzI##IWI#W5I59IIIIII59IIIIzIII#IIIWIII5IIIIII9IIIII9IIIIIIIII# 
- 
K	J	,	, 
K	Js#   N;N N*N;*
N8	4N;;
O	c           	         Sn[        SUS9 n[        S5       nSS0n[        X@S9nUS   nS	ovUL o(       do  [        R                  " S
U4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pSnUR                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzZ* * * * * original_command
# wolfpanel:cmd_123
*/5 * * * * echo 1
1 2 3 4 5 other_command
r   r   r   r\   r!   r   r   Tr   r   r   r   r   r]   )r	   r   r9   r:   r;   r<   r=   r?   )rG   r2   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   s               rY   &test_cron_delete_separate_comment_liner`   G   s    	$  
*9I	Ji	+	,
+ >9~%%%%%%%~%%%~%%%%%%%%%%( 	 	**+?@ 
- 
K	J	,	, 
K	Js#   C B%C>C 
C	C  
C.c           	         Sn[        SUS9 n[        S5       nSS0n[        X@S9nUS   nS	ovUL o(       do  [        R                  " S
U4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pSoeS   ovU;   o(       do  [        R                  " SU4SXg45      [        R                  " U5      [        R                  " U5      S.-  n	SSU	0-  n
[        [        R                  " U
5      5      eS =n=pUR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   r   r\   nonexistentr   r   Fr   r   r   r   r   z	not founderrorinz%(py1)s in %(py4)s)r	   r   r9   r:   r;   r<   r=   assert_not_called)rG   r2   rH   rI   rJ   rK   rL   rM   rN   rO   rP   s              rY   test_cron_delete_not_foundrh   ^   s    5	*9I	Ji	+	,
/ >9~&&&&&&&~&&&~&&&&&&&&&&*'l*l*****{***{***l*******$$& 
- 
K	J	,	, 
K	Js#   E!D&E?E!
E	E!!
E/c                 `   SSSS.n[        XS9nUS   nSoCUL oU(       do  [        R                  " SU4S	X445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTSo2S   oCU;   oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTSSSS.n[        XS9n	U	S   nSoCUL oU(       do  [        R                  " SU4S	X445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTSo9S   oCU;   oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTg )Nz
* * * * *
r   wolfpanel-managed:123r   r   r   Fr   r   r   r   r   Newlinerc   rd   rf   	* * * * *zecho 1
rm -rf /r   r9   r:   r;   r<   r=   )
rG   rJ   rK   rL   rM   rN   rO   rP   payload_cmdres_cmds
             rY   #test_cron_create_validation_newlinerp   l   sr   !*G
 W
:Cy>"U"U""""">""">"""U"""""""$G$$$$$$9$$$9$$$$$$$$$$  %*K
 !BG9&&&&&&&&&&&&&&&&&&&&(((((((((9(((9(((((((((((    c                 2   SSSS.n[        XS9nUS   nSoCUL oU(       do  [        R                  " SU4S	X445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTSo2S   oCU;   oU(       do  [        R                  " SU4SX445      [        R                  " U5      [        R                  " U5      S
.-  nSSU0-  n[	        [        R
                  " U5      5      eS =n=pTg )Nrl   zecho 1 # try to break commentrj   r   r   r   Fr   r   r   r   r   zHash characterrc   rd   rf   rm   )rG   rJ   rK   rL   rM   rN   rO   rP   s           rY    test_cron_create_validation_hashrs      s    2*G
 W
:Cy>"U"U""""">""">"""U"""""""+7|+|+++++++++++|+++++++rq   )process_commandsc           	         [        5       nSUl        SUl        [        5       nSSSSSS.S	.S
S0 S	./UR                  l        [        SSS.S9nU[        5       S.n[        SSS9   [        SU5         [        X5        UR                  SSSS.5        UR                  R                  SSSSS.S.S5        UR                  R                  S
SSS0S.S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nonline1r   cron_job.createrl   r   zwolfpanel-managed:1r   )idcommand_typerJ      zinvalid.typeTok)r   messager   )rx   zcron_job.deletezcommand_runner.load_agent_tokentokenzcommand_runner.HANDLERS	succeeded)statusresultfailedrc   z&Unsupported command type: invalid.type)
r   r   	server_idget_pending_commandsr   r	   rt   r?   post_command_resultassert_any_call)rG   config
api_clientmock_createmock_handlerss        rY   +test_command_runner_dispatches_successfullyr      s%   [FFMF J"3[em  {P  AQ  	R.R@4J##0
 Td)KLK&$;M 
0w	G	(-	8, 	++QYf{,|} 	&&66"$4.PQ	
 	&&66G5]+^_	
 
9 
H	G	8	8 
H	Gs%   %C:2A&C)C:)
C7	3C::
D__main__test_rG   z/tmpzPASS zFAIL )/builtinsrB   _pytest.assertion.rewrite	assertionrewriter9   syspathlibr   pathinsertstr__file__resolveparentsactions.cronr   r   actionspytestunittest.mockr   r	   rZ   r^   r`   rh   rp   rs   command_runnerrt   r   __name__	tracebacksortedglobalsitems
startswithfuncsfailuresfunc__code__co_varnamesprint	Exception	print_excexit)kvs   00rY   <module>r      sX     
  3tH~--/77:UBC D ?   *J<J8A.')(, ,(
V z!')//"34N441W8MQ4NEH
	"T]]666T&\"E$--)*  HH(Q"! N  	"MHE$--)*!	"s   9EE*AE1F
F