
    M/e3O                     f   d Z ddlZddlZddlmZ ddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmc mZ ej4                  j7                   ej8                  d            Z G d dej<                        Z G d dej@                        Z! G d dej<                        Z" G d dej<                        Z# G d dej<                        Z$ G d dej<                        Z% G d dej<                        Z& G d dej<                        Z' G d dej<                        Z( ejR                  d       ejR                  d        G d! d"ej<                                      Z*e+d#k(  r4 ejX                   ejZ                  ej\                  d$d e/gz                yy)%zTest certbot.display.ops.    N)mock)messages)errors)account)obj)
filesystem)os)ops)utilzrsa512_key.pemc                   4   e Zd ZdZed        Z ej                         d        Z ej                         d        Z	 ej                         d        Z
 ej                         d        Z ej                         d        Z ej                         d        Zy	)
GetEmailTestz(Tests for certbot.display.ops.get_email.c                     ddl m}  |di |S )Nr   )	get_email )certbot.display.opsr   )clskwargsr   s      J/usr/lib/python3/dist-packages/certbot/_internal/tests/display/ops_test.py_callzGetEmailTest._call   s    1"6""    c                 x    |       j                   }t        j                  df|_        t	        j
                  t        j                        5  | j                          d d d        t	        j
                  t        j                        5  | j                  d       d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nfoo@bar.bazFoptional)	inputdisplay_utilCANCELreturn_valuepytestraisesr   Errorr   )selfmock_get_utility
mock_inputs      r   test_cancel_nonezGetEmailTest.test_cancel_none   s    %'--
#/#6#6"F
]]6<<( 	JJL	]]6<<( 	'JJJ&	' 	'	 		' 	's   B$B0$B-0B9c                      |       j                   }t        j                  df|_        t	        j
                  d      5 }d|_        | j                         dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   #certbot.display.ops.util.safe_emailT)r   r   OKr   r   patchr   r"   r#   r$   mock_safe_emails       r   test_ok_safezGetEmailTest.test_ok_safe(   sa    %'--
#/??M"B
ZZ=> 	1/+/O(::<=000	1 	1 	1s   A%%A.c                      |       j                   }t        j                  df|_        t	        j
                  d      5 }ddg|_        | j                         dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   r'   FT)r   r   r(   r   r   r)   side_effectr   r*   s       r   test_ok_not_safezGetEmailTest.test_ok_not_safe0   se    %'--
#/??M"B
ZZ=> 	1/+0$-O'::<=000	1 	1 	1s   A''A0c                 X   d} |       j                   }t        j                  df|_        t	        j
                  d      5 }d|_        | j                          ||j                  d   d   vsJ | j                  d       ||j                  d   d   v sJ 	 d d d        y # 1 sw Y   y xY w)NThere seem to be problemsr   r'   Tr   invalid)r   r   r(   r   r   r)   r   	call_argsr"   r#   invalid_txtr$   r+   s        r   test_invalid_flagzGetEmailTest.test_invalid_flag8   s    1%'--
#/??M"B
ZZ=> 	=/+/O(JJLj&:&:1&=a&@@@@JJtJ$*"6"6q"9!"<<<<	= 	= 	=s    AB  B)c                     |       j                   }t        j                  df|_        t	        j
                  d      5 }ddg|_        | j                  d       |j                  D ]  }d|d   d   vrJ  	 d d d        y # 1 sw Y   y xY w)Nr   r'   FTr   z!--register-unsafely-without-emailr   )	r   r   r(   r   r   r)   r.   r   call_args_list)r"   r#   r$   r+   calls        r   test_optional_flagzGetEmailTest.test_optional_flagD   s    %'--
#/??M"B
ZZ=> 	M/+0$-O'JJJ&"11 M:$q'!*LLLM	M 	M 	Ms   5B4BB
c                    d} |       j                   }t        j                  df|_        t	        j
                  d      5 }ddg|_        | j                  d       ||j                  d   d   v sJ 	 d d d        y # 1 sw Y   y xY w)Nr1   r   r'   FTr2   r   )	r   r   r(   r   r   r)   r.   r   r4   r5   s        r   test_optional_invalid_unsafez)GetEmailTest.test_optional_invalid_unsafeN   s    1%'--
#/??M"B
ZZ=> 	=/+0$-O'JJtJ$*"6"6q"9!"<<<<	= 	= 	=s    2A<<BN)__name__
__module____qualname____doc__classmethodr   	test_utilpatch_display_utilr%   r,   r/   r7   r;   r=   r   r   r   r   r      s    2# # "Y!!#' $' "Y!!#1 $1 "Y!!#1 $1 "Y!!#	= $	= "Y!!#M $M "Y!!#= $=r   r   c                        e Zd ZdZ fdZed        Z ej                         d        Z	 ej                         d        Z
 ej                         d        Z xZS )ChooseAccountTestz-Tests for certbot.display.ops.choose_account.c           	         t         |           t        j                  t        j                  t
        j                  d             t        j                  j                  | j                  d      | _        t        j                  | j                  d       t        j                  | j                  | j                  d      | _        t"        | _        t'        j(                  t+        j,                  d t*        j.                  j1                  d            | j$                        | _        t'        j(                  t+        j,                  d t*        j.                  j1                  d	d
            | j$                        | _        y )NFkeysi  zcertbot-demo.org)accounts_diraccount_keys_dirserverzemail1@g.com)email)uribodyzemail2@g.comphone)rL   rO   )supersetUpdisplay_objset_displayFileDisplaysysstdoutr	   pathjointempdirrJ   r   makedirsr   	MagicMockconfigKEYkeyr   Accountr   RegistrationResourceRegistration	from_dataacc1acc2)r"   	__class__s    r   rQ   zChooseAccountTest.setUp[   s    7 7

E JK "T\\6 BD1159nn!22%' OOH$A$A800::$ ; &%'(,2	 OOH$A$A800::$G ; 5%67;xxA	r   c                 ,    t        j                  |      S N)r
   choose_account)r   accountss     r   r   zChooseAccountTest._callp   s    !!(++r   c                     t         j                  df |       j                  _        | j	                  | j
                  g      | j
                  k(  sJ y )Nr   )r   r(   menur   r   rc   r"   	mock_utils     r   test_onezChooseAccountTest.test_onet   s<    )5!(<	%zz499+&$))333r   c                     t         j                  df |       j                  _        | j	                  | j
                  | j                  g      | j                  k(  sJ y N   )r   r(   rk   r   r   rc   rd   rl   s     r   test_twozChooseAccountTest.test_twoy   sC    )5!(<	%zz499dii01TYY>>>r   c                     t         j                  df |       j                  _        | j	                  | j
                  | j                  g      J y rp   )r   r   rk   r   r   rc   rd   rl   s     r   test_cancelzChooseAccountTest.test_cancel~   s?    )5)<)<a(@	%zz499dii01999r   )r>   r?   r@   rA   rQ   rB   r   rC   rD   rn   rr   rt   __classcell__)re   s   @r   rF   rF   Y   s}    7A* , , "Y!!#4 $4 "Y!!#? $? "Y!!#: $:r   rF   c                   D    e Zd ZdZd Zed        Zd Zd Zd Z	d Z
d Zy	)
GenHttpsNamesTestzTest _gen_https_names.c                 r    t        j                  t        j                  t        j                  d             y NF)rR   rS   rT   rU   rV   r"   s    r   rQ   zGenHttpsNamesTest.setUp   s!     7 7

E JKr   c                     ddl m}  ||      S )Nr   )_gen_https_names)r   r|   )r   domainsr|   s      r   r   zGenHttpsNamesTest._call   s    8((r   c                 0    | j                  g       dk(  sJ y N r   rz   s    r   	test_zerozGenHttpsNamesTest.test_zero   s    zz"~###r   c                 N    ddg}|D ]  }| j                  |g      d|z  k(  rJ  y )Nexample.comzasllkjsadfljasdf.cz
https://%sr   )r"   domsdoms      r   rn   zGenHttpsNamesTest.test_one   s>     
  	;C::se$s(::::	;r   c                 n    ddgddgg}|D ](  }| j                  |      dj                  |      k(  r(J  y )Nzfoo.bar.orgzbar.orgzpaypal.google.facebook.live.comz*.zombo.example.comz%https://{dom[0]} and https://{dom[1]}r   r   format)r"   domains_listr   s      r   rr   zGenHttpsNamesTest.test_two   s\    I&.0EF
 ! 	ID::d#7>>4>HI I I	Ir   c                 X    g d}| j                  |      dj                  |      k(  sJ y )N)a.orgb.orgc.orgz8https://{dom[0]}, https://{dom[1]}, and https://{dom[2]}r   r   )r"   r   s     r   
test_threezGenHttpsNamesTest.test_three   s9    *zz$FMM N  	 r   c                 \    g d}dj                  |      }| j                  |      |k(  sJ y )N)r   r   r   zd.orgzJhttps://{dom[0]}, https://{dom[1]}, https://{dom[2]}, and https://{dom[3]}r   )r   r   )r"   r   exps      r   	test_fourzGenHttpsNamesTest.test_four   s6    3&&,ff&6 	 zz$3&&&r   N)r>   r?   r@   rA   rQ   rB   r   r   rn   rr   r   r   r   r   r   rw   rw      s9     L ) )$;I'r   rw   c                      e Zd ZdZd Zedd       Z ej                  d      d        Z	 e
j                         d        Z e
j                         d        Zd	 Zd
 Z e
j                         d        Z e
j                         d        Z e
j                         d        Z e
j                         d        Zd Z e
j                         d        Z e
j                         d        Zy)ChooseNamesTestzTest choose names.c                     t        j                  t        j                  t        j                  d             t        j                         | _        y ry   )rR   rS   rT   rU   rV   r   r[   mock_installrz   s    r   rQ   zChooseNamesTest.setUp   s0     7 7

E JK NN,r   Nc                      ddl m}  |||      S )Nr   )choose_names)r   r   )r   	installerquestionr   s       r   r   zChooseNamesTest._call   s    4Ix00r   z*certbot.display.ops._choose_names_manuallyc                 H    | j                  d        |j                  dk(  sJ y rp   )r   
call_count)r"   mock_manuals     r   test_no_installerz!ChooseNamesTest.test_no_installer   s"    

4%%***r   c                 |    t         j                  g f |       j                  _        | j	                  d       g k(  sJ y rg   )r   r   r   r   r   rl   s     r   test_no_installer_cancelz(ChooseNamesTest.test_no_installer_cancel   s4    *6*=*=r)B	&zz$2%%%r   c                 (   t               | j                         j                  _        d}t        j
                  |f |       j                  _        | j                  | j                        } |       j                  j                  dk(  sJ ||gk(  sJ y Nr   rq   )	setr   get_all_namesr   r   r(   r   r   r   )r"   rm   domainactual_domss       r   test_no_names_choosez$ChooseNamesTest.test_no_names_choose   sy    9<))6*6//6)B	&jj!2!23{  ++q000vh&&&r   c                     ddl m}  |g       g k(  sJ g d} ||      g dk(  sJ d}g d}|D cg c]  }||z   	 }}t        |      }|D cg c]  }||z   	 }} ||      |k(  sJ y c c}w c c}w )Nr   _sort_names)ex.comzx.comax.com)r   r   r   z.ex.com)eazy)r   r   sorted)	r"   r   some_domainsr   unsorted_shortusunsorted_longsorted_shortsorted_longs	            r   test_sort_names_trivialz'ChooseNamesTest.test_sort_names_trivial   s    3 2"$$$ 6<(,JJJJ -/=>f>>n--9:rrF{::=)[888 ? ;s   A*A/c                     ddl m} g d}g d}g d}g }|D ]  }|D ]  }|j                  ||z            g }t        |      D ]  }|D ]  }|j                  ||z             ||      |k(  sJ y )Nr   r   )z.cx.comz.bx.comz.ax.comz.dx.com)wwwbnother.long.subdomainr   a.long.subdomainr   b)r   r   r   r   r   r   )r   r   appendr   )	r"   r   unsorted_domainsr   r   to_sortshortr   sortds	            r   test_sort_names_manyz$ChooseNamesTest.test_sort_names_many   s    3G][# 	-E* -uV|,-	- -. 	+F% +U6\*+	+ 7#u,,,r   c                    dh| j                   j                  _        t        j                  dgf |       j
                  _        | j                  | j                         }|dgk(  sJ  |       j
                  j                  dk(  sJ y r   )r   r   r   r   r(   	checklistr   r   r"   rm   namess      r   test_filter_names_valid_returnz.ChooseNamesTest.test_filter_names_valid_return   ss    8E''4.:oo-O	*

4,,-'''{$$//1444r   c                 ^   dh| j                   j                  _        t        j                  dgf |       j
                  _        | j                  | j                   d      }|dgk(  sJ  |       j
                  j                  dk(  sJ  |       j
                  j                  d   d   dk(  sJ y )Nr   Customrq   r   )	r   r   r   r   r(   r   r   r   r4   r   s      r   $test_filter_namees_override_questionz4ChooseNamesTest.test_filter_namees_override_question   s    8E''4.:oo-O	*

4,,h7'''{$$//1444{$$..q1!4@@@r   c                     dh| j                   j                  _        t        j                  g f |       j
                  _        | j                  | j                         g k(  sJ y Nr   )r   r   r   r   r(   r   r   rl   s     r   "test_filter_names_nothing_selectedz2ChooseNamesTest.test_filter_names_nothing_selected	  sN    8E''4.:oor-B	*zz$++,222r   c                     dh| j                   j                  _        t        j                  dgf |       j
                  _        | j                  | j                         g k(  sJ y r   )r   r   r   r   r   r   r   rl   s     r   test_filter_names_cancelz(ChooseNamesTest.test_filter_names_cancel  sV    8E''4-.2	* zz$++,222r   c                     ddl m} g d}ddg}g d} ||      |k(  sJ  ||      g k(  sJ t         ||            dk(  sJ y )Nr   )get_valid_domains)r   zsecond.example.comalso.example.comunder_score.example.comjusttldz*.wildcard.comu   öóòps.net   uniçodé.com)r   u   úniçøde.comr      )r   r   len)r"   r   	all_validall_invalid	two_valids        r   test_get_valid_domainsz&ChooseNamesTest.test_get_valid_domains  s\    92	 &7I	 +y888 -333$Y/0A555r   c                    ddl m}  |       }d|j                  _        t        j
                  df|j                  _         |       g k(  sJ t        j                  d      5 }t        ddddd      }||_
         |       g k(  sJ 	 d d d        t        j
                  d	f|j                  _         |       g d
k(  sJ y # 1 sw Y   9xY w)Nr   _choose_names_manuallyFr   z=certbot.display.ops.internal_display_util.separate_list_inputr   r   rq   z=example.com,under_score.example.com,justtld,valid.example.com)r   r   r   zvalid.example.com)r   r   yesnor   r   r(   r   r   r)   UnicodeEncodeErrorr.   )r"   rm   r   utility_mockmock_sliunicode_errors         r   test_choose_manuallyz$ChooseNamesTest.test_choose_manually#  s    > {*/'+7??*9+;'%'2---ZZO
 	2.vsAq&IM#0H )+r111	2 ,8??,?+A'
 &':: 	: :	2 	2s   !#B==Cc                     ddl m}  |       }t        j                  df|j                  _        g d|j                  _         |        |j                  j                  dk(  sJ y )Nr   r   r   )TTF   )	r   r   r   r(   r   r   r   r.   r   )r"   rm   r   r   s       r   test_choose_manually_retryz*ChooseNamesTest.test_choose_manually_retry>  sT    > {+7??*9+;')<& !!,,111r   rg   )r>   r?   r@   rA   rQ   rB   r   r   r)   r   rC   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sG   - 1 1 TZZ<=+ >+ "Y!!#& $& "Y!!#' $'9(-& "Y!!#5 $5 "Y!!#A $A "Y!!#3 $3 "Y!!#3 $3	6 "Y!!#: $:4 "Y!!#2 $2r   r   c                   x    e Zd ZdZed        Z ej                          ej                  d      d               Z
y)SuccessInstallationTestz&Test the success installation message.c                      ddl m}  ||       y )Nr   )success_installation)r   r   )r   r   r   s      r   r   zSuccessInstallationTest._callL  s    <U#r   certbot.display.util.notifyc                     d  |       j                   _        ddg}| j                  |       |j                  dk(  sJ |j                  d   d   d   }|D ]  }||v rJ  y )Nr   abc.comrq   r   )notificationr   r   r   r9   )r"   mock_notifymock_displayr   argnames         r   test_success_installationz1SuccessInstallationTest.test_success_installationQ  ss     48##0	*

5%%***((+A.q1 	D3;;	r   N)r>   r?   r@   rA   rB   r   rC   rD   r   r)   r   r   r   r   r   r   J  sJ    0$ $ "Y!!#TZZ-.
 / $
r   r   c                   x    e Zd ZdZed        Z ej                          ej                  d      d               Z
y)SuccessRenewalTestz!Test the success renewal message.c                      ddl m}  ||       y )Nr   )success_renewal)r   r   )r   r   r   s      r   r   zSuccessRenewalTest._callb  s    7r   r   c                 |    d  |       j                   _        ddg}| j                  |       |j                  dk(  sJ y )Nr   r   rq   )r   r   r   r   )r"   r   r   r   s       r   test_success_renewalz'SuccessRenewalTest.test_success_renewalg  s>     48##0	*

5%%***r   N)r>   r?   r@   rA   rB   r   rC   rD   r   r)   r   r   r   r   r   r   `  sJ    +  "Y!!#TZZ-.+ / $+r   r   c                   x    e Zd ZdZed        Z ej                          ej                  d      d               Z
y)SuccessRevocationTestz$Test the success revocation message.c                      ddl m}  ||       y )Nr   )success_revocation)r   r  )r   rW   r  s      r   r   zSuccessRevocationTest._callt  s    :4 r   r   c                 j    d}| j                  |       |j                  dj                  |             y )Nz/path/to/cert.pemzWCongratulations! You have successfully revoked the certificate that was located at {0}.)r   assert_called_once_withr   )r"   r   unused_mock_displayrW   s       r   test_success_revocationz-SuccessRevocationTest.test_success_revocationy  s1     #

4++''-vd|	
r   N)r>   r?   r@   rA   rB   r   rC   rD   r   r)   r  r   r   r   r   r   r  sJ    .! ! "Y!!#TZZ-.
 / $
r   r   c                   n   e Zd ZdZdZdZdZed        Z e	j                         d        Z e	j                         d        Z e	j                         d        Z e	j                         d	        Z e	j                         d
        Z e	j                         d        Z e	j                         d        Zy)ValidatorTestsz6Tests for `validated_input` and `validated_directory`.zMust be non-emptyasdfz/var/www/htmlc                 T    | dk(  r#t        j                  t        j                        y r   )r   PluginErrorr  _ValidatorTests__ERROR)ms    r   __validatorzValidatorTests.__validator  s%    7$$^%;%;<< r   c                    t         j                  dft         j                  dft         j                  dft         j                  | j                  fg |       j                  _        t        j                  | j                  dd      }t        j                   |       j                  j                  d   d   k(  sJ |t         j                  | j                  fk(  sJ y )Nr   messageTforce_interactiver   )r   r(   valid_inputr   r.   r
   validated_input_ValidatorTests__validatorr  r  r   r4   r"   rm   returneds      r   test_input_blank_with_validatorz.ValidatorTests.test_input_blank_with_validator  s    *6//2)>*6//2)>*6//2)>*6//4;K;K)L)N	%
 &&t'7'7VZ[%%)A)A)K)KA)Nq)QQQQLOOT-=-=>>>>r   c                     t         j                  | j                  fg |       j                  _        t        j                  | j                  dd      }|t         j                  | j                  fk(  sJ y Nmsgotherdefault)r   r(   r  r   r.   r
   r  r  r  s      r   "test_input_validation_with_defaultz1ValidatorTests.test_input_validation_with_default  s[    *6//4;K;K)L(M	%&&t'7'7PLOOT-=-=>>>>r   c                    t         j                  | j                  fg |       j                  _        t        j                  t              5  t        j                  | j                  dd       d d d        y # 1 sw Y   y xY wNr  r   r  )r   r(   r  r   r.   r   r    AssertionErrorr
   r  r  rl   s     r   &test_input_validation_with_bad_defaultz5ValidatorTests.test_input_validation_with_bad_default  sa    *6//4;K;K)L(M	%]]>* 	E 0 0%D	E 	E 	E   #A77B c                     t         j                  dfg |       j                  _        t	        j
                  | j                  dd      \  }}|t         j                  k(  sJ y )Nr   r  Tr  )r   r   r   r.   r
   r  r  )r"   rm   code
unused_raws       r    test_input_cancel_with_validatorz/ValidatorTests.test_input_cancel_with_validator  sT    *6*=*=r)B(C	%..t/?/?^bcj|*****r   c                 v   t         j                  dft         j                  | j                  fg |       j                  _        t        j                  | j                  dd      }t        j                   |       j                  j                  d   d   k(  sJ |t         j                  | j                  fk(  sJ y )Nr   r  Tr  r   )r   r(   valid_directorydirectory_selectr.   r
   validated_directoryr  r  r  r   r4   r  s      r    test_directory_select_validationz/ValidatorTests.test_directory_select_validation  s    5A__b4I5A__dFZFZ4[4]	$$0 **4+;+;UVZ[%%)A)A)K)KA)Nq)QQQQLOOT-A-ABBBBr   c                     t         j                  | j                  fg |       j                  _        t        j                  | j                  dd      }|t         j                  | j                  fk(  sJ y r  )r   r(   r)  r*  r.   r
   r+  r  r  s      r   -test_directory_select_validation_with_defaultz<ValidatorTests.test_directory_select_validation_with_default  s[    5A__dFZFZ4[3\	$$0**4+;+;UGTLOOT-A-ABBBBr   c                    t         j                  | j                  fg |       j                  _        t        j                  t              5  t        j                  | j                  dd       d d d        y # 1 sw Y   y xY wr   )r   r(   r)  r*  r.   r   r    r!  r
   r+  r  rl   s     r   1test_directory_select_validation_with_bad_defaultz@ValidatorTests.test_directory_select_validation_with_bad_default  sa    5A__dFZFZ4[3\	$$0]]>* 	I##D$4$4eRH	I 	I 	Ir#  N)r>   r?   r@   rA   r  r  r)  staticmethodr  rC   rD   r  r  r"  r'  r,  r.  r0  r   r   r   r  r    s   @!GK%O= = "Y!!#? $? "Y!!#? $? "Y!!#E $E "Y!!#+ $+ "Y!!#C $C "Y!!#C $C "Y!!#I $Ir   r  c                       e Zd ZdZed        Z ej                         d        Z ej                         d        Z	 ej                         d        Z
y)ChooseValuesTestzTest choose_values.c                      ddl m}  |||      S )Nr   )choose_values)r   r5  )r   valuesr   r5  s       r   r   zChooseValuesTest._call  s    5VX..r   c                 $   g d}t         j                  |d   gf |       j                  _        | j	                  |d       }||d   gk(  sJ  |       j                  j
                  du sJ  |       j                  j                  d   d   dk(  sJ y )Nfirstsecondthirdr   Tr   r   r   r(   r   r   r   calledr4   )r"   rm   itemsresults       r   test_choose_names_successz*ChooseValuesTest.test_choose_names_success  s    ,.:ooaz-J	*E4(%(###{$$++t333{$$..q1!4:::r   c                 (   g d}d}t         j                  |d   gf |       j                  _        | j	                  ||      }||d   gk(  sJ  |       j                  j
                  du sJ  |       j                  j                  d   d   |k(  sJ y )Nr8  z
Which one?rq   Tr   r<  r"   rm   r>  r   r?  s        r   "test_choose_names_success_questionz3ChooseValuesTest.test_choose_names_success_question  s    ,.:ooaz-J	*E8,%(###{$$++t333{$$..q1!4@@@r   c                    g d}d}t         j                  g f |       j                  _        | j	                  ||      }|g k(  sJ  |       j                  j
                  du sJ  |       j                  j                  d   d   |k(  sJ y )Nr8  zWant to cancel?Tr   )r   r   r   r   r   r=  r4   rB  s        r   test_choose_names_user_cancelz.ChooseValuesTest.test_choose_names_user_cancel  s    ,$.:.A.A2-F	*E8,||{$$++t333{$$..q1!4@@@r   N)r>   r?   r@   rA   rB   r   rC   rD   r@  rC  rE  r   r   r   r3  r3    sx    / / "Y!!#; $; "Y!!#A $A "Y!!#A $Ar   r3  zcertbot.display.ops.loggerr   c            	       D    e Zd ZdZededededefd       Zd Zd Z	d	 Z
y
)ReportExecutedCommandzTest report_executed_commandcmd_namercouterrc                 &    ddl m}  |||||       y )Nr   )report_executed_command)r   rM  )r   rH  rI  rJ  rK  rM  s         r   r   zReportExecutedCommand._call  s    ?"c37r   c                     | j                  dddd       |j                  j                  dk(  sJ |j                  dk(  sJ y )N	some-hookr   Did a thingSome warningrq   r   warningr   r"   r   mock_loggers      r   test_mixed_successz(ReportExecutedCommand.test_mixed_success  sB    

;=.A""--222%%***r   c                     | j                  dddd       |j                  j                  dk(  sJ |j                  dk(  sJ y )NrO  irP  rQ  r   rq   rR  rT  s      r   test_mixed_errorz&ReportExecutedCommand.test_mixed_error  sB    

;m^D""--222%%***r   c                     | j                  dddd       |j                  j                  dk(  sJ |j                  dk(  sJ y )NrO  r   
 rR  rT  s      r   test_empty_successz(ReportExecutedCommand.test_empty_success  sB    

;4-""--222%%***r   N)r>   r?   r@   rA   rB   strintr   rV  rX  r\  r   r   r   rG  rG    sD     '8S 8c 8 8# 8 8+
+
+r   rG  __main__rq   )0rA   rU   unittestr   josepyjoser   acmer   certbotr   certbot._internalr   certbot._internal.displayr   rR   certbot.compatr   r	   certbot.displayr
   r   r   certbot.tests.utiltestsrC   JWKRSAloadload_vectorr]   TestCaser   TempDirTestCaserF   rw   r   r   r   r   r  r3  r)   rG  r>   exitmainargv__file__r   r   r   <module>rt     s    
       % 8 %   0 & &
kk,y,,-=>??=8$$ ?=D(:	11 (:V*')) *'ZV2h'' V2rh// ,+** +$
H-- 
$BIX&& BIJ"Ax(( "AJ ())*+H-- + + *+, zCHH[V[[!"
234 r   