
    M/e                     
   d Z ddlZddlZddlm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c mZ  G d d	ej                         Zed
k(  r4 ej&                   ej                  ej(                  dd egz                yy)z$Tests for renewal updater interfaces    N)mock)
interfaces)main)updater)enhancementsc                       e Zd ZdZ fdZ ej                  d       ej                  d       ej                  d       ej                         d                             Z	d Z
 ej                  d      d	        Z ej                  d      d
        Z ej                  d      d        Zd Z ej                  d      d        Zd Z ej                  d      d        Zd Z xZS )RenewUpdaterTestz@Tests for interfaces.RenewDeployer and interfaces.GenericUpdaterc                 ^   t         |           t        j                  t        j
                        | _        t        j                         | j                  _        t        j                  t        j                        | _	        t        j                  t        j                        | _        y )N)spec)supersetUpr   	MagicMockr   GenericUpdatergeneric_updaterrestartRenewDeployerrenew_deployerr   AutoHSTSEnhancementmockinstaller)self	__class__s    K/usr/lib/python3/dist-packages/certbot/_internal/tests/renewupdater_test.pyr   zRenewUpdaterTest.setUp   sf    #~~:3L3LM'+~~'7$"nn*2J2JK!^^1Q1QR    z)certbot._internal.main._get_and_save_certz?certbot._internal.plugins.selection.choose_configurator_pluginsz<certbot._internal.plugins.selection.get_unprepared_installerc                    t        j                         |_        | j                  }|d f|_        ||_        t        j                  d      5  t        j                  | j                  d t        j                                d d d        |j                  j                  sJ |j                  j                          |j                  j                          t        j                  | j                  t        j                         d        |j                  j                  dk(  sJ |j                  j                  du sJ y # 1 sw Y   xY w)Nz&certbot._internal.main._init_le_client   F)r   r   return_valuer   patchr   
renew_certconfigr   called
reset_mockgeneric_updatesr   run_generic_updaters
call_count)r   _	mock_getimock_selectmock_getsavemock_generic_updaters         r   test_server_updatesz$RenewUpdaterTest.test_server_updates   s   
 %)NN$4!#33 %9$#? !5	ZZ@A 	AOODKKt~~/?@	A#++2222$$//1,,779$$T[[$..2BDI#33>>!CCC#++22e;;;	A 	As   4D<<Ec                     t        j                         }| j                  }t        j                  | j
                  ||       |j                  j                  |       y N)r   r   r   r   run_renewal_deployerr   renew_deployassert_called_with)r   lineagemock_deployers      r   test_renew_deployerz$RenewUpdaterTest.test_renew_deployer.   sC    .."++$$T[['=I""55g>r   z&certbot._internal.updater.logger.debugc                     d| j                   _        t        j                  | j                   d d        |j                  sJ |j
                  d   d   dk(  sJ y )NTr   z"Skipping updaters in dry-run mode.)r   dry_runr   r#   r    	call_argsr   mock_logs     r   test_updater_skip_dry_runz*RenewUpdaterTest.test_updater_skip_dry_run4   sU    "$$T[[$=!!!$Q'>? 	? ?r   c                     d| j                   _        t        j                  | j                   d d        |j                  sJ |j
                  d   d   dk(  sJ y )NTr   z*Skipping renewal deployer in dry-run mode.)r   r4   r   r-   r    r5   r6   s     r   test_deployer_skip_dry_runz+RenewUpdaterTest.test_deployer_skip_dry_run<   sX    "$$T[[$=!!!$Q'FG 	G Gr   c                    | j                   |_        t        j                  | j                  t        j                         d        | j                   j                  j                  sJ | j                   j                  j                  dk(  sJ y )Nr   )
r   r   r   r#   r   r   r   update_autohstsr    r$   r   r&   s     r   test_enhancement_updatesz)RenewUpdaterTest.test_enhancement_updatesD   sh    !%!3!3	$$T[[$..2BDI!!118888!!11<<AAAr   c                     t        j                  | j                  t        j                         | j
                         | j
                  j                  j                  sJ y r,   )r   r-   r   r   r   r   deploy_autohstsr    r   s    r   test_enhancement_deployerz*RenewUpdaterTest.test_enhancement_deployerK   sC    $$T[[$..2B%)%7%7	9!!118888r   c                     d| j                   _        | j                  |_        t	        j
                  | j                   t        j                         d        | j                  j                  j                  du sJ y NTF)
r   disable_renew_updatesr   r   r   r#   r   r   r<   r    r=   s     r   #test_enhancement_updates_not_calledz4RenewUpdaterTest.test_enhancement_updates_not_calledP   sY    ,0)!%!3!3	$$T[[$..2BDI!!1188EAAAr   c                     d| j                   _        t        j                  | j                   t	        j
                         | j                         | j                  j                  j                  du sJ y rD   )	r   rE   r   r-   r   r   r   r@   r    rA   s    r   $test_enhancement_deployer_not_calledz5RenewUpdaterTest.test_enhancement_deployer_not_calledW   sT    ,0)$$T[[$..2B%)%7%7	9!!1188EAAAr   c                 X   dt         j                  d dddg}| j                  |_        t	        j
                  d|      5  t        j                  | j                  t	        j                         d        d d d        | j                  j                  j                  du sJ y # 1 sw Y   .xY wNTestr@   enable_autohsts)nameclassupdater_functiondeployer_functionenable_functionz#certbot.plugins.enhancements._INDEXF)r   r   r   r   r   r   r   r#   r   r   r<   r    )r   r&   	FAKEINDEXs      r   test_enhancement_no_updaterz,RenewUpdaterTest.test_enhancement_no_updater]   s     %99$(%6#4
	 "&!3!3	ZZ=yI 	N((dnn6FM	N!!1188EAAA	N 	Ns   4B  B)c                 J   dt         j                  dd ddg}t        j                  d|      5  t	        j
                  | j                  t        j                         | j                         d d d        | j                  j                  j                  du sJ y # 1 sw Y   .xY wrJ   )r   r   r   r   r   r-   r   r   r   r@   r    )r   rR   s     r   test_enhancement_no_deployerz-RenewUpdaterTest.test_enhancement_no_deployerm   s     %99$5%)#4
	 ZZ=yI 	=((dnn6F)-););=	= !!1188EAAA	= 	=s   >BB")__name__
__module____qualname____doc__r   r   r   	test_utilpatch_display_utilr*   r2   r8   r:   r>   rB   rF   rH   rS   rU   __classcell__)r   s   @r   r	   r	      s*   JS TZZ;<TZZQRTZZNO!Y!!#< $ P S =<"? TZZ89? :? TZZ89G :G TZZNOB PB9
 TZZNOB PBB TZZNOB PBBr   r	   __main__r   )rY   sysunittestr   pytestcertbotr   certbot._internalr   r   certbot.pluginsr   certbot.tests.utiltestsutilrZ   ConfigTestCaser	   rV   exitargv__file__ r   r   <module>rl      sv    * 
     " % ( & &kBy// kB\ zCHH[V[[!"
234 r   