ó
    É-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Ó
U€CØˆy‰>Ð"˜UÐ"˜UÐ"×"×"×"Ò"ˆ>×"×"Ô"ˆ>×"×"Ó"˜U×"×"×"×"×"×"Ó"Øˆw‰<Ð.Ð.Ð.Ð.Ñ.×.×.×.Ò.ˆ<×.×.Ô.ˆ<×.×.Ó.Ð.×.×.×.×.×.×.Ó.ô ˜H mÐ4Ó
5€CØˆ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Ö	3ús   È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-emailFéx   ©Ú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  € ô &°Ð;MÐVXÑY€HÔä	Ð¨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Ö	3ús   ›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ÑV€HÔä
˜H mÐ4Ó
5€Càˆ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Ó
6€CØˆ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  € ô &°Ð;KÐTVÑW€HÔä	Ð¨dÓ	3Ü ¨=Ð 9Ó:ˆ÷ 
4ð ˆy‰>Ð!˜TÐ!˜TÐ!×!×!×!Ò!ˆ>×!×!Ô!ˆ>×!×!Ó!˜T×!×!×!×!×!×!Ó!ØÐ, 8™}Ð,˜}Ñ,×,×,×,Ò,Ð×,×,Ô,Ð×,×,Ó,˜}×,×,×,×,×,×,Ó,à×$Ñ$ò	
ð
 ØØØð %ò 
÷ 
4Ö	3ús   ›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î   ðÝ "ç  „ ƒ	ß *Û ÷ñ ò0ò4/ñ €~ DÑ)ñ3ó *ð3ñ$ €~Ð$6Ñ7ÙÐÓñó ó 8ðñ6 €~Ð$6Ñ7ÙÐÓñó ó 8ðñ* €~Ð$6Ñ7ÙÐ eÑ,ñ,ó -ó 8ð,ñ €~Ð$6Ñ7ÙÐÓñó ó 8ñr,   