
    -Ej~                    B   S SK Jr  S SKrS SKJs  Jr  S SKrS SK	J
r
Jr  S SKrS SKJrJrJr  S rS r\" SSS9S	 5       r\" SS
S9\" S5      S 5       5       r\" SS
S9\" S5      S 5       5       r\" SS
S9\" SSS9S 5       5       r\" SS
S9\" S5      S 5       5       rg)    )annotationsN)	MagicMockpatch)handle_ssl_generatehandle_ssl_renewhandle_ssl_deletec                    / SQn U  GHG  n[        USS.5      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=pTUS   nSoCU:H  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=pT[        SU05      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=pTUS   nSoCU:H  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=pT[        SU05      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=pTUS   nSoCU:H  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MJ     g )N)zdomain; rm -rf /z../etc/passwdzdomain.com/pathz
domain comzdomain$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatest@example.comdomainemailsuccessFisz%(py1)s is %(py4)spy1py4assert %(py6)spy6errorinvalid_domain==z%(py1)s == %(py4)sr   )r   
@pytest_ar_call_reprcompare	_safereprAssertionError_format_explanationr   r   )bad_domainsdomres@py_assert0@py_assert3@py_assert2@py_format5@py_format7s           <D:\Programs\laragon\www\wolf\agent\tests\test_actions_ssl.py,test_domain_validation_blocks_bad_charactersr+      s   K !S;M"NO9~&&&&&&&~&&&~&&&&&&&&&&7|/////////|///|/////////// #/9~&&&&&&&~&&&~&&&&&&&&&&7|/////////|///|///////////  309~&&&&&&&~&&&~&&&&&&&&&&7|/////////|///|///////////     c                 P   / SQn U  GH  n[        SUS.5      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=pTUS   nSoCU:H  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M     g )N)invalidemail ztest@z@example.comNexample.comr   r   Fr   r   r   r   r   r   invalid_emailr   r   )r   r   r   r   r    r!   )
bad_emailsr   r$   r%   r&   r'   r(   r)   s           r*   'test_email_validation_blocks_bad_emailsr3   (   s    J !]U"KL9~&&&&&&&~&&&~&&&&&&&&&&7|.......|...|.......... r,   zshutil.whichreturn_valuec                   [        SSS.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=pC[        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=pC[        SSS9   [        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=pCS S S 5        g ! , (       d  f       g = f)Nr0   r   r   r   Fr   r   r   r   r   r   certbot_not_foundr   r   r   os.path.existsTr4   )	r   r   r   r   r    r!   r   r   r   )
mock_whichr$   r%   r&   r'   r(   r)   s          r*   $test_certbot_not_found_returns_errorr:   6   s$    AST
UCy>"U"U""""">""">"""U"""""""w<.........<...<........... Hm4
5Cy>"U"U""""">""">"""U"""""""w<.........<...<........... 
d	3= 9:9~&&&&&&&~&&&~&&&&&&&&&&7|222222222|222|22222222222 
4	3	3s   8DM
M&z/usr/bin/certbotzsubprocess.runc                   [        SSSS9U l        [        SSS9   [        SS	S
.5      nS S S 5        W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=pTUS   nSoCU:H  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=pTU R                  / SQSSSSS9  g ! , (       d  f       GN= f)Nr   zsuccess generater/   
returncodestdoutstderrr8   Tr4   r0   r   r   r   r   r   r   r   r   r>   inz%(py1)s in %(py4)s	cert_pathz//etc/letsencrypt/live/example.com/fullchain.pemr   r   )
certbotcertonlyz--nginxz-dr0   --non-interactivez--agree-tosz-mr   z--no-eff-emailFx   capture_outputtextshelltimeout)
r   r5   r   r   r   r   r   r    r!   assert_called_once_withmock_runr9   r$   r%   r&   r'   r(   r)   s           r*   test_ssl_generate_successrP   I   sU    &;MVXYH	d	3!]EW"XY 
4 y>!T!T!!!!!>!!!>!!!T!!!!!!!.X...................{PPPPPPPPPPPPPPPPPPPPPPP$$	
  %  
4	3s   G
G$c                x   [        SSSS9U l        [        SS05      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=pTU R                  / SQSSSSS9  g )Nr   zsuccess renewr/   r<   r   r0   r   Tr   r   r   r   r   r>   r@   rB   )rD   renew--cert-namer0   rF   FrG   rH   )	r   r5   r   r   r   r   r    r!   rM   rN   s           r*   test_ssl_renew_successrT   f   s     &?SUVH
Hm4
5Cy>!T!T!!!!!>!!!>!!!T!!!!!!!+(m+m+++++?+++?+++m+++++++$$	

  % 
r,   r8   Fc                0   [        SS05      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=pTUS
   nSoCU:H  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 )Nr   r0   r   Fr   r   r   r   r   r   cert_not_foundr   r   )r   r   r   r   r    r!   )mock_existsr9   r$   r%   r&   r'   r(   r)   s           r*   test_ssl_delete_not_foundrX   }   s     X}5
6Cy>"U"U""""">""">"""U"""""""w<+++++++++<+++<+++++++++++r,   c                   [        SSSS9U l        [        SSS9   [        SS	05      nS S S 5        W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=pTU R                  / SQSSSSS9  g ! , (       d  f       GN-= f)Nr   zsuccess deleter/   r<   r8   Tr4   r   r0   r   r   r   r   r   r   r>   r@   rB   )rD   deleterS   r0   rF   FrG   rH   )
r   r5   r   r   r   r   r   r    r!   rM   rN   s           r*   test_ssl_delete_successr[      s    &;KTVWH	d	3= 9: 
4 y>!T!T!!!!!>!!!>!!!T!!!!!!!,8},},,,,,,,,,,,},,,,,,,$$	

  % 
 
4	3s   E
E)
__future__r   builtins@py_builtins_pytest.assertion.rewrite	assertionrewriter   osunittest.mockr   r   pytestactions.sslr   r   r   r+   r3   r:   rP   rT   rX   r[    r,   r*   <module>rg      s    "   	 *  04/ ~D)3 *3$ ~$67  86 ~$67  8* ~$67e,, - 8, ~$67  8r,   