
Y[c           @   s[  d  Z  d d l Z d d l Z d d l Z d d l 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 j j
 Z e j d  Z e j d  Z d e j f d	     YZ d
 e j f d     YZ d e j f d     YZ d e f d     YZ d e f d     YZ d e j f d     YZ e d k rWe j   n  d S(   s   Tests for certbot.client.iN(   t   account(   t   errors(   t   utils   rsa512_key.pems   csr-san_512.pemt   DetermineUserAgentTestc           B   si   e  Z d  Z d   Z e j j e j i d d 6 d    Z	 e j j e j i   d    Z
 d   Z RS(   s.   Tests for certbot.client.determine_user_agent.c         C   s   d d l  m } | |  j  S(   Ni(   t   determine_user_agent(   t   certbot.clientR   t   config(   t   selfR   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   _call   s    t   1t   CERTBOT_DOCSc         C   s   |  j  d t  d  S(   Nt   expect_doc_values(   t   _testt   True(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_docs_value   s    c         C   s   |  j  d t  d  S(   NR   (   R   t   False(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_real_values   s    c         C   s   |  j    } | r' |  j } |  j } n |  j } |  j } | d |  | d |  | d |  | t j   |  | t j   |  d  S(   Ns   certbot(-auto)s   OS_NAME OS_VERSIONs   major.minor.patchlevel(   R   t   assertInt   assertNotInR   t   get_os_info_uat   platformt   python_version(   R   R   t   uat   doc_value_checkt   real_value_check(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   #   s    			(   t   __name__t
   __module__t   __doc__R   t   mockt   patcht   dictt   ost   environR   R   R   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR      s
   	(!t   RegisterTestc           B   s   e  Z d  Z d   Z d   Z d   Z d   Z e j d  e j d  d     Z	 e j d  d    Z
 d	   Z e j d
  d    Z e j d  e j d  d     Z d   Z RS(   s"   Tests for certbot.client.register.c         C   sJ   t  t |   j   d |  j _ t |  j _ d |  j _ t j	   |  _
 d  S(   Ni   s   alias@example.com(   t   superR!   t   setUpR   t   rsa_key_sizeR   t   register_unsafely_without_emailt   emailR    t   AccountMemoryStoraget   account_storage(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR#   7   s
    c         C   s2   d d l  m } t j   } | |  j |  j |  S(   Ni(   t   register(   R   R)   R   t	   MagicMockR   R(   (   R   R)   t   tos_cb(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   >   s    c         C   s   t  j d   } d | j   _ t  j d  ~ } t  j d  f t j |   j _ |  j t j |  j  |  j	 | j
  d  |   j _ |  j   |  j | j
  Wd  QXWd  QXWd  QXd  S(   Ns6   certbot.client.acme_client.BackwardsCompatibleClientV2s
   http://toss   certbot.eff.handle_subscriptions"   certbot.account.report_new_account(   R   R   t   new_account_and_tost   terms_of_serviceR   t   Errort   side_effectt   assertRaisesR   t   assertFalset   calledt   Nonet
   assertTrue(   R   t   mock_clientt   mock_handle(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_tosC   s    
c         C   sP   t  j d  ; t  j d  % t  j d   |  j   Wd  QXWd  QXWd  QXd  S(   Ns6   certbot.client.acme_client.BackwardsCompatibleClientV2s"   certbot.account.report_new_accounts   certbot.eff.handle_subscription(   R   R   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_itP   s    s"   certbot.account.report_new_accounts$   certbot.client.display_ops.get_emailc         C   s   d d l  m } t |  j _ d } | j j d d | } t j d  g } t j d  O } | t j	   g |   j
 _ |  j   |  j | j d  |  j | j  Wd  QXWd  QXd  S(	   Ni(   t   messagess3   DNS problem: NXDOMAIN looking up MX for example.comt   invalidContactt   details6   certbot.client.acme_client.BackwardsCompatibleClientV2s   certbot.eff.handle_subscriptioni   (   t   acmeR9   R   R   t   noninteractive_modeR.   t	   with_codeR   R   R*   R,   R/   R   t   assertEqualt
   call_countR4   R2   (   R   t   _rept   mock_get_emailR9   t   msgt   mx_errR5   R6   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_email_retryV   s    
c         C   s   d d l  m } t |  j _ d } | j j d d | } t j d  N } t j d  6 | t j	   g |   j
 _ |  j t j |  j  Wd  QXWd  QXd  S(   Ni(   R9   s3   DNS problem: NXDOMAIN looking up MX for example.comR:   R;   s6   certbot.client.acme_client.BackwardsCompatibleClientV2s   certbot.eff.handle_subscription(   R<   R9   R   R   R=   R.   R>   R   R   R*   R,   R/   R0   R   R   (   R   RA   R9   RC   RD   R5   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt!   test_email_invalid_noninteractived   s    c         C   s&   d  |  j _ |  j t j |  j  d  S(   N(   R3   R   R&   R0   R   R.   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_needs_emailo   s    s   certbot.client.loggerc         C   s   t  j d   } t  j d  l t  j d  V d  |  j _ t |  j _ t |  j _ |  j	   | j
 j t  j  |  j | j  Wd  QXWd  QXWd  QXd  S(   Ns   certbot.eff.handle_subscriptions6   certbot.client.acme_client.BackwardsCompatibleClientV2s"   certbot.account.report_new_account(   R   R   R3   R   R&   R   R%   R   t   dry_runR   t   infot   assert_called_once_witht   ANYR4   R2   (   R   t   mock_loggerR6   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_without_emails   s    
c         C   s   t  j d  z } t  j d  b t  j d  L t |  j _ |  j   |  j | j  |  j |   j j	 d d j
  Wd QXWd QXWd QXd S(   sJ   Tests dry-run for no staging account, expect account created with no emails6   certbot.client.acme_client.BackwardsCompatibleClientV2s   certbot.eff.handle_subscriptions"   certbot.account.report_new_accounti    N(   R   R   R   R   RH   R   R1   R2   R,   t	   call_argst   contact(   R   RA   RB   R5   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_dry_run_no_staging_account   s    
c         C   s   d d l  m } d } | j d | d d d d  } t j d  P } t j d	  8 } | t j   g |   j _ |  j | j |  j	  Wd  QXWd  QX|  j
 | j  d  S(
   Ni(   R9   t   TestR;   t   typt	   malformedt   titles6   certbot.client.acme_client.BackwardsCompatibleClientV2s   certbot.eff.handle_subscription(   R<   R9   R.   R   R   R*   R,   R/   R0   R   R1   R2   (   R   R9   RC   RD   R5   R6   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_unsupported_error   s    "(   R   R   R   R#   R   R7   R8   R   R   RE   RF   RG   RM   RP   RU   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR!   4   s   					t   ClientTestCommonc           B   s   e  Z d  Z d   Z RS(   s2   Common base class for certbot.client.Client tests.c         C   s   t  t |   j   t |  j _ t |  j _ t j i t	 d 6  |  _
 d d l m } t j d  P } | |  _ t j   |  _ | _ | d |  j d |  j
 d d  d d   |  _ Wd  QXd  S(	   Ns   key.pemi(   t   Clients6   certbot.client.acme_client.BackwardsCompatibleClientV2R   t   account_t   autht	   installer(   R"   RV   R#   R   R   t   no_verify_sslt   allow_subset_of_namesR   R*   t   KEYR    R   RW   R   t   acme_clientR<   t   return_valueR3   t   client(   R   RW   R<   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR#      s    	(   R   R   R   R#   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyRV      s   t
   ClientTestc           B   ss  e  Z d  Z d   Z d   Z d   Z d d  Z e j d  e j d  e	 j
   d      Z e j d  d	    Z e j d  e j d
  d     Z e j d  e j d  d     Z d   Z d   Z d d d  Z e j d  e j d  d     Z e j d  d    Z d   Z d   Z d   Z e	 j
   d    Z e	 j
   d    Z RS(   s    Tests for certbot.client.Client.c         C   sb   t  t |   j   t |  j _ t |  j _ d d g |  _ t j	 d d  g d t j j  |  _ d  S(   Ns   example.coms   www.example.comt   authorizationst   csr_pem(   R"   Ra   R#   R   R   R\   RH   t
   eg_domainsR   R*   R3   t   sentinelRc   t   eg_order(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR#      s    		c         C   s(   |  j  j d d } |  j | j  d  S(   Ni    (   R^   RN   R4   t
   verify_ssl(   R   t   net(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_init_acme_verify_ssl   s    c         C   sa   t  j   |  j _ d  g |  j j j _ |  j |  j j	 _ |  j |  j j
 _ |  j |  j j _ d  S(   N(   R   R*   R`   t   auth_handlerR3   t   handle_authorizationsR_   Rf   R<   t   finalize_ordert	   new_ordert   update(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   _mock_obtain_certificate   s
    i   c         C   sm   | d k r1 |  j  j j j |  j |  j j  n |  j |  j  j j j |  |  j	 j
 j |  j t j  d  S(   Ni   (   R`   Rj   Rk   RJ   Rf   R   R\   R?   R@   R<   Rl   R   RK   (   R   t
   auth_count(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   _check_obtain_certificate   s    s   certbot.client.crypto_utils   certbot.client.loggerc         C   s0  |  j    t j d d d d  d t  } |  j j } |  j | j  |  j	 j
 | j  } | j | t  |  j t j j t j j f |  j j | d |  |  j   |  j t j j t j j f |  j j | d d   | j j |  j t  d  |  j _ |  j t j |  j j |  | j j t j  d  S(   Nt   formt   pemt   filet   datat   orderr(   Ro   R   t   CSRR3   t   CSR_SANR`   Rj   t   _set_mock_from_fullchaint   cert_and_chain_from_fullchainR<   Rm   Ru   Rk   R   R?   R   Re   t   certt   chaint   obtain_certificate_from_csrRq   t   assert_called_withRf   R0   R   R.   t   warningRJ   RK   (   R   t   unused_mock_get_utilityRL   t   mock_crypto_utilt   test_csrRj   Rv   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt    test_obtain_certificate_from_csr   s0    
	

	
	c         C   s   t  j d d d d  d t  } | | j _ t j j | j	 _ |  j
 | j  |  j t j j |  | j	 j |  j j |  j j  | j j t j j |  j |  j j  | j j |  j j  d  S(   NRr   Rs   Rt   Ru   (   R   Rw   R3   Rx   t   init_save_csrR_   R   Re   t   keyt   init_save_keyRy   Rz   t   _test_obtain_certificate_commonRJ   R   R$   t   key_dirRd   t   csr_dirRf   t   fullchain_pem(   R   R   t   csr(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_obtain_certificate   s    			s	   os.removec         C   s  t  j d d d t j j d t  } t  j d d d t j j d t  } | | j _ | | j	 _ |  j
 | j  |  j d g  } t |  j _ |  j | | d | d d |  j | j	 j d  |  j | j j d  |  j | j d  |  j | j j d	  d  S(
   NRr   Rs   Rt   Ru   s   example.comt
   authzr_retRp   i   i   (   R   Rw   R   Re   t   csr_fileRx   t   key_fileR   R_   R   Ry   Rz   t   _authzr_from_domainsR   R   R\   R   R?   R@   (   R   t   mock_removeR   R   R   t   authzr(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt'   test_obtain_certificate_partial_success  s    $$s   certbot.client.acme_crypto_utilc         C   s   t  j d d d d  d t  } t | j _ t j j | j	 _ t  j
 d d  d t j j  } |  j | j  t |  j j _ |  j | |  | j	 j |  j j  | j j t j j |  j |  j j  | j j   | j j   |  j | j j d  d  S(   NRr   Rs   Rt   Ru   i   (   R   Rw   R3   Rx   t   make_csrR_   R   Re   t   key_pemt   make_keyt   KeyRy   Rz   R   R`   R   RH   R   RJ   R$   Rd   t   must_stapleR   t   assert_not_calledR   R?   R@   (   R   t   mock_acme_cryptot   mock_cryptoR   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_obtain_certificate_dry_run  s    	c         C   sO   t  j   } t  j j | j _ t  j   } t  j j | j _ | | f | _ d  S(   N(   R   t   MockRe   R{   t   encodeR_   R|   (   R   t   mock_from_fullchaint	   mock_certt
   mock_chain(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyRy   (  s
    c      	   C   sR   g  } xE t  |  D]7 } | j t j d t j d t j d |     q W| S(   Nt   bodyt
   identifiert   value(   t   reversedt   appendR   R*   (   R   t   domainsR   t   domain(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   /  s    			c         C   s   |  j    | p |  j |  j  } | |  j _ | |  j j j _ t	 j
    |  j j |  j  } Wd  QX|  j | t j j t j j | | f  |  j |  d  S(   N(   Ro   R   Rd   Rf   Rb   R`   Rj   Rk   R_   t	   test_utilt   patch_get_utilityt   obtain_certificateR?   R   Re   R{   R|   Rq   (   R   R   R   R   Rp   R   t   result(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   ;  s    
s(   certbot.client.Client.obtain_certificates)   certbot.storage.RenewableCert.new_lineagec         C   s  d d g } t  j   t  j   t  j   d  f | _ t |  j j _ |  j |  j j	 | d   |  j |  j j	 | d    |  j |  j j	 | d d    t
 |  j j _ |  j |  j j	 | d    g  | j D] } | d d ^ q } |  j | d d d g  d  S(   Ns   *.example.coms   example.comt   example_certi   i    (   R   R*   R3   R_   R   R`   R   RH   R4   t   obtain_and_enroll_certificateR   R1   t   call_args_listR?   (   R   t   mock_storaget   mock_obtain_certificateR   t   callt   names(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt"   test_obtain_and_enroll_certificateN  s    	 $s   certbot.cli.helpful_parserc         C   s  d d g } t  j   } t j | d  t j | d  } t j | d  t j | d  } t j j | d d  } t j j | d d  } t j j | d d	  } d
 | _ d | d | d | g | _	 |  j
 j | | | | |  \ }	 }
 } |  j t j j |	  t j j |   |  j t j j |
  t j j |   |  j t j j |  t j j |   t |	 d   } | j   } Wd  QX|  j | t j | d   t |
 d   } | j   } Wd  QX|  j | t j | d  t j | d   t j |  d  S(   Ns   cert_512.pems   cert-san_512.pemi  i    i   t   certst   chainss	   chain.pems   fullchain.pemt   certonlys   --cert-paths   --chain-paths   --fullchain-patht   rb(   t   tempfilet   mkdtempR   t   chmodR   t   load_vectort   patht   joint   verbt   argsR`   t   save_certificateR?   t   dirnamet   opent   readt   shutilt   rmtree(   R   t   mock_parserR   t   tmp_patht   cert_pemt	   chain_pemt   candidate_cert_patht   candidate_chain_patht   candidate_fullchain_patht	   cert_patht
   chain_patht   fullchain_patht	   cert_filet   cert_contentst
   chain_filet   chain_contents(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_save_certificatec  s:    $		c         C   s   |  j  t j |  j j d g d d d d  t j   } | |  j _ |  j j d g d d d d  | j j	 d t
 j j d  d t
 j j d  d d d	 d d
 t
 j j d   |  j | j j d  | j j	   d  S(   Ns   foo.barR   R{   R|   t	   fullchainR   R   R   R   t   key_pathi   (   R0   R   R.   R`   t   deploy_certificateR   R*   RZ   t   deploy_certRJ   R   R   t   abspathR?   t   saveR@   t   restart(   R   RZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_deploy_certificate_success  s    	c         C   sc   t  j   } | |  j _ t j | j _ |  j t j |  j j	 d g d d d d  | j
 j   d  S(   Ns   foo.barR   R{   R|   R   (   R   R*   R`   RZ   R   t   PluginErrorR   R/   R0   R   t   recovery_routineRJ   (   R   RZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_deploy_certificate_failure  s    c         C   sc   t  j   } | |  j _ t j | j _ |  j t j |  j j	 d g d d d d  | j
 j   d  S(   Ns   foo.barR   R{   R|   R   (   R   R*   R`   RZ   R   R   R   R/   R0   R   R   RJ   (   R   RZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt$   test_deploy_certificate_save_failure  s    c         C   s   t  j   } t j d  g | j _ | |  j _ |  j	 t j |  j j
 d g d d d d  |  j |   j j d  | j j   |  j | j j d  d  S(   Ns   foo.barR   R{   R|   R   i   i   (   R   R*   R   R   R3   R   R/   R`   RZ   R0   R   R?   t   add_messageR@   t   rollback_checkpointsRJ   (   R   t   mock_get_utilityRZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt'   test_deploy_certificate_restart_failure  s    c         C   s   t  j   } t j | j _ t j | j _ | |  j _	 |  j
 t j |  j j d g d d d d  |  j |   j j d  | j j   |  j | j j d  d  S(   Ns   foo.barR   R{   R|   R   i   (   R   R*   R   R   R   R/   t   ReverterErrorR   R`   RZ   R0   R   R?   R   R@   RJ   (   R   R   RZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt(   test_deploy_certificate_restart_failure2  s    N(   R   R   R   R#   Ri   Ro   Rq   R   R   R   R   R   R   R   R   Ry   R   R3   R   R   R   R   R   R   R   R   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyRa      s0   	
		"		'					t   EnhanceConfigTestc           B   s   e  Z d  Z d   Z d   Z e j d  d    Z e j d  d    Z e j d  d    Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z e j d  d    Z d   Z d   Z d   Z d   Z RS(   s/   Tests for certbot.client.Client.enhance_config.c         C   sP   t  t |   j   t |  j _ t |  j _ t |  j _ t |  j _ d |  _	 d  S(   Ns   example.org(
   R"   R   R#   R   R   t   hstst   redirectt   staplet   uirR   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR#     s    c         C   s)   |  j  t j |  j j |  j g d   d  S(   N(   R0   R   R.   R`   t   enhance_configR   R3   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_installer  s    s   certbot.client.enhancementsc         C   s   t  j   |  j _ g  |  j j j _ d  |  j _ t	 |  j _
 t  j d    } |  j j |  j g d   Wd  QX|  j | j j d  |  j j j j   | j j   d  S(   Ns   certbot.client.loggeri   (   R   R*   R`   RZ   t   supported_enhancementsR_   R3   R   R   R   R   R   R   R   R?   R   R@   t   enhanceR   t   ask(   R   t   mock_enhancementsRL   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_unsupported  s    s   certbot.client.loggerc         C   sK   t  |  j _ |  j   |  j | j j  |  j | j j d d d  d  S(   Ni    i   s   Strict-Transport-Security(	   R   R   R   t   _test_with_already_existingR4   R   R2   t   assertEqualsRN   (   R   t   mock_log(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_already_exists_header  s
    
c         C   sK   t  |  j _ |  j   |  j | j j  |  j | j j d d d  d  S(   Ni    i   R   (	   R   R   R   R   R4   R   R2   R   RN   (   R   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_already_exists_redirect  s
    
c         C   s9   t  |  j _ |  j   |  j j j j |  j d d  d  S(   Ns   ensure-http-headers   Strict-Transport-Security(	   R   R   R   t   _test_with_all_supportedR`   RZ   R   R~   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_ask_hsts  s    
c         C   s9   t  |  j _ |  j   |  j j j j |  j d d   d  S(   NR   (
   R   R   R   R   R`   RZ   R   R~   R   R3   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_ask_redirect  s    
c         C   s9   t  |  j _ |  j   |  j j j j |  j d d   d  S(   Ns   staple-ocsp(
   R   R   R   R   R`   RZ   R   R~   R   R3   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_ask_staple  s    
c         C   s9   t  |  j _ |  j   |  j j j j |  j d d  d  S(   Ns   ensure-http-headers   Upgrade-Insecure-Requests(	   R   R   R   R   R`   RZ   R   R~   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_ask_uir  s    
c         C   sH   t  j   |  j _ t j |  j j j _ |  j   |  j j j	 j
   d  S(   N(   R   R*   R`   RZ   R   R   R   R/   t   _test_errorR   RJ   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_enhance_failure  s    
c         C   sa   t  j   |  j _ t j |  j j j _ |  j   |  j j j	 j
   |  j j j j
 t  j  d  S(   N(   R   R*   R`   RZ   R   R   R   R/   R   R   RJ   RK   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_save_failure  s
    
c         C   s;   t  j   |  j _ t j d  g |  j j j _ |  j	   d  S(   N(
   R   R*   R`   RZ   R   R   R3   R   R/   t   _test_error_with_rollback(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_restart_failure  s    c         C   sD   t  j   } t j | j _ t j | j _ | |  j _	 |  j
   d  S(   N(   R   R*   R   R   R   R/   R   R   R`   RZ   R  (   R   RZ   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_restart_failure2  s
    s   certbot.client.enhancements.askc         C   s#   d  |  j _ t | _ |  j   d  S(   N(   R3   R   R   R   R_   R   (   R   t   mock_ask(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_ask&  s    	c         C   s'   |  j    |  j |  j j j j  d  S(   N(   R   R4   R`   RZ   R   R2   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR  ,  s    
c         C   sT   t  |  j _ t j    } |  j t j |  j  Wd  QX|  j	 |   j
 j d  d  S(   Ni   (   R   R   R   R   R   R0   R   R   R   R?   R   R@   (   R   t   mock_gu(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   0  s
    c         C   s   |  j  j d  k r' t j   |  j  _ n  d d d g |  j  j j _ |  j  j |  j g d   |  j	 |  j  j j
 j d  |  j	 |  j  j j j d  d  S(   Ns   ensure-http-headerR   s   staple-ocspi   (   R`   RZ   R3   R   R*   R   R_   R   R   R?   R   R@   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   7  s    c         C   sb   t  j   |  j _ d d d g |  j j j _ t j   |  j j j _	 |  j j
 |  j g d   d  S(   Ns   ensure-http-headerR   s   staple-ocsp(   R   R*   R`   RZ   R   R_   R   t   PluginEnhancementAlreadyPresentR   R/   R   R   R3   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   @  s    (   R   R   R   R#   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R   R   R   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR     s&   															t   RollbackTestc           B   s8   e  Z d  Z d   Z e d    Z d   Z d   Z RS(   s"   Tests for certbot.client.rollback.c         C   s   t  j   |  _ d  S(   N(   R   R*   t	   m_install(   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR#   K  s    c      	   C   sN   d d l  m } t j d  ) } | | _ | d  | i  t j    Wd  QXd  S(   Ni(   t   rollbacks.   certbot.client.plugin_selection.pick_installer(   R   R
  R   R   R/   R3   R*   (   t   clst   checkpointsR/   R
  t   mpi(    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   N  s    	c         C   sO   |  j  d |  j  |  j |  j   j j d  |  j |  j   j j d  d  S(   Ni   (   R   R	  R?   R   R@   R   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   test_no_problemsU  s    c         C   s   |  j  d d   d  S(   Ni   (   R   R3   (   R   (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR   Z  s    (   R   R   R   R#   t   classmethodR   R  R   (    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyR  H  s
   		t   __main__(   R   R   R   R   R   t   unittestR   t   certbotR    R   R   t   certbot.tests.utilt   testsR   R   R]   Rx   t   ConfigTestCaseR   R!   RV   Ra   R   t   TestCaseR  R   t   main(    (    (    s=   /usr/lib/python2.7/dist-packages/certbot/tests/client_test.pyt   <module>   s*    d 