
    Djy                     $   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Jr  S SKrS SKJrJrJr  S rS rS	 rS
 rS rS rS rS rS r g)    N)Path   src)handle_sftp_createhandle_sftp_deletehandle_sftp_reset_password)	MagicMockpatchcallc                  V   SSSS.n [        SSS9 n[        S5       n[        5       nS	Ul        X2l        [	        U 5      nUS
   nSoeUL ow(       do  [
        R                  " SU4SXV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUS   nSoeU:H  ow(       do  [
        R                  " SU4SXV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUR                  S5        UR                  n
SoU:H  of(       d  [
        R                  " SU4SX45      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
=pk[        / SQSSSS9[        S/SSSSS9[        / S QSSSS9[        / S!QSSSS9/nUR!                  U5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)"Nmysitesecret_password/var/www/mysiteusername_suffixpasswordhome_directoryactions.sftp.user_existsFreturn_valuesubprocess.runr   successTisz%(py1)s is %(py4)spy1py4assert %(py6)spy6usernamewolf_sftp_mysite==z%(py1)s == %(py4)s   )z2%(py2)s
{%(py2)s = %(py0)s.call_count
} == %(py5)smock_run)py0py2py5zassert %(py7)spy7)	useraddz-mz-dr   z-sz/usr/sbin/nologinz-gzwww-datar"   capture_outputtextcheckchpasswdz wolf_sftp_mysite:secret_passwordinputr.   r/   r0   )chmod750r   )chownzwolf_sftp_mysite:www-datar   )r
   r	   
returncoder   r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationassert_called_once_with
call_count@py_builtinslocals_should_repr_global_namer   assert_has_calls)payloadmock_existsr'   mock_subres@py_assert0@py_assert3@py_assert2@py_format5@py_format7@py_assert1@py_assert4@py_format6@py_format8callss                  =D:\Programs\laragon\www\wolf\agent\tests\test_actions_sftp.pytest_sftp_create_successrR      s   #%+G 
)	>+		 H; ( )9~%%%%%%%~%%%~%%%%%%%%%%:4"44"444444444444"44444444++,>? ""'a'a'''''"''''''x''''x'''"'''a''''''' |  NR  Y]  ej  k*%GX\cgotu4TPT\abJ[_fjrwx	
 	!!%(5 
! 
?	>	 	  
?	>s#   JIJ	8J	
J	J
J(c            	         SSSS.n [        SSS9   [        S5       n[        5       nS	Ul        X!l        [	        U 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=peS S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nzmy-site!_123$r   r   r   r   Fr   r   r   r   Tr   r   r   r   r    r!   wolf_sftp_mysite_123r#   r%   )
r
   r	   r7   r   r   r8   r9   r:   r;   r<   )	rC   r'   rE   rF   rG   rH   rI   rJ   rK   s	            rQ   !test_sftp_create_sanitized_suffixrU   2   s   *%+G 
)	>		 H; ( )9~%%%%%%%~%%%~%%%%%%%%%%:8"88"888888888888"88888888 
! 
?	>	 	  
?	>s#   E+D,E	E+
E(	$E++
E9c                  ~   SSSS.n [        SSS9   [        U 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=pCS S S 5        g ! , (       d  f       g = f)Nz!!!r   r   r   r   Fr   r   r   r   r   r   r    zInvalid or emptyerrorinz%(py1)s in %(py4)sr
   r   r8   r9   r:   r;   r<   rC   rF   rG   rH   rI   rJ   rK   s          rQ   test_sftp_create_invalid_suffixr]   G   s     %+G 
)	> )9~&&&&&&&~&&&~&&&&&&&&&&!1\1\11111!111!111\1111111 
?	>	>   DD..
D<c                  ~   SSSS.n [        SSS9   [        U 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=pCS S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r   Tr   r   Fr   r   r   r   r    zalready existsrW   rX   rZ   r[   r\   s          rQ   test_sftp_create_duplicate_userr`   T   s    #%+G 
)	= )9~&&&&&&&~&&&~&&&&&&&&&&/w</<///////////</////// 
>	=	=r^   c            	      >   SS0n [        SSS9 n[        S5       n[        5       nSUl        X2l        [	        U 5      nUS   nSoeUL ow(       do  [
        R                  " S	U4S
XV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUS   nSoeU:H  ow(       do  [
        R                  " SU4SXV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUR                  S5        UR                  / SQSSSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr!   r"   r   Tr   r   r   r   r   r   r   r   r    r#   r%   )userdelz-rr"   Fr-   )r
   r	   r7   r   r   r8   r9   r:   r;   r<   r=   
rC   rD   r'   rE   rF   rG   rH   rI   rJ   rK   s
             rQ   test_sftp_delete_successrd   b   s,   &G 
)	=		 H; ( )9~%%%%%%%~%%%~%%%%%%%%%%:4"44"444444444444"44444444++,>?(()N_cjnv{(| 
! 
>	=	 	  
>	=s#   FEE=,F=
F	F
Fc                  2   SS0n [        U 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=pCg )Nr!   
other_userr   Fr   r   r   r   r    must start withrW   rX   rZ   )r   r8   r9   r:   r;   r<   r\   s          rQ   test_sftp_delete_invalid_prefixrh   w   s    LG W
%Cy>"U"U""""">""">"""U""""""",G,,,,,,,,,,,,,,,,,,,    c                  z   SS0n [        SSS9   [        U 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=pCS S S 5        g ! , (       d  f       g = f)Nr!   wolf_sftp_nonexistentr   Fr   r   r   r   r   r   r    zdoes not existrW   rX   rZ   )r
   r   r8   r9   r:   r;   r<   r\   s          rQ   test_sftp_delete_nonexistentrl      s    +G 
)	> )9~&&&&&&&~&&&~&&&&&&&&&&/w</<///////////</////// 
?	>	>s   DD,,
D:c            
      @   SSS.n [        SSS9 n[        S5       n[        5       nSUl        X2l        [	        U 5      nUS	   nSoeUL ow(       do  [
        R                  " S
U4SXV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUS   nSoeU:H  ow(       do  [
        R                  " SU4SXV45      [
        R                  " U5      [
        R                  " U5      S.-  nSSU0-  n	[        [
        R                  " U	5      5      eS =n=pvUR                  S5        UR                  S/SSSSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr"   new_secret_passwordr!   new_passwordr   Tr   r   r   r   r   r   r   r   r    r!   r#   r%   r1   z$wolf_sftp_mysite:new_secret_passwordFr2   )r
   r	   r7   r   r   r8   r9   r:   r;   r<   r=   rc   s
             rQ    test_sftp_reset_password_successrq      s;   &-G
 
)	=		 H; ((19~%%%%%%%~%%%~%%%%%%%%%%:4"44"444444444444"44444444++,>?((*=ctx  @D  LQ(  	R 
! 
>	=	 	  
>	=s#   FEE>-F>
F	F
Fc                  4   SSS.n [        U 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=pCg )Nrf   rn   ro   r   Fr   r   r   r   r    rg   rW   rX   rZ   )r   r8   r9   r:   r;   r<   r\   s          rQ   'test_sftp_reset_password_invalid_prefixrs      s     -G
 %W
-Cy>"U"U""""">""">"""U""""""",G,,,,,,,,,,,,,,,,,,,ri   )!builtinsr?   _pytest.assertion.rewrite	assertionrewriter8   syspathlibr   pathinsertstr__file__resolveparentsactions.sftpr   r   r   pytestunittest.mockr	   r
   r   rR   rU   r]   r`   rd   rh   rl   rq   rs    ri   rQ   <module>r      s      
  3tH~--/77:UBC D [ [  0 0#)L9*
20}*-0R,-ri   