
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 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 e j f d	     YZ d
 e f d     YZ d e j f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e f d     YZ d e j f d     YZ d e j f d     YZ d e j f d     YZ d e j  f d     YZ! e" d  k re j#   n  d S(!   s   Tests for certbot.cert_manager.iN(   t   configuration(   t   errors(   t   util(   t   ALL_FOUR(   t   storage_testt   BaseCertManagerTestc           B   s    e  Z d  Z d   Z d   Z RS(   s2   Base class for setting up Cert Manager tests.
    c            s   t  t    j   t   j _ t j   j j  i d  d 6t j
 j   j j d  d 6  _ t   f d     j D    _ t t j
 j   j j d  d  } | j d  | j   d  S(   Ns   example.orgt   specialarchives	   other.comc         3   s.   |  ]$ } |   j  |   j |  f Vq d  S(   N(   t   _set_up_configt   domains(   t   .0t   domain(   t   self(    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pys	   <genexpr>$   s   s   IGNORE.THISt   ws   This file should be ignored!(   t   superR   t   setUpt   Falset   configt   quiett   ost   makedirst   renewal_configs_dirt   Nonet   patht   joint
   config_dirR   t   dictt   config_filest   opent   writet   close(   R   t   junk(    (   R   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR      s    "$c         C   s   t  j t  j j |  j j |   t j   } | d  k	 rT t  j |  | | d <n" t  j t  j j |  j j	 |   x4 t
 D], } t  j j |  j j | | d  | | <q} Wt  j j |  j j | d  | _ | j   | S(   Nt   archive_dirs   .pems   .conf(   R   R   R   R   R   t   live_dirt	   configobjt	   ConfigObjR   t   default_archive_dirR   R   t   filenameR   (   R   R
   t   custom_archivet   config_filet   kind(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   .   s    ""
(   t   __name__t
   __module__t   __doc__R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR      s   	t   UpdateLiveSymlinksTestc           B   s   e  Z d  Z d   Z RS(   s8   Tests for certbot.cert_manager.update_live_symlinks
    c   	         s  d d l  m } i  } x |  j D] } |  j | } | d k	 rH |   n t j j |  j j |    t	   f d   t
 D  | | <xi t
 D]a } |  j | | } | | | } t | d  j   t j t j j |  j j | d  |  q Wq  W| j |  j  t j   } z x |  j D] } xv t
 D]n } t j t j j |  j | |   |  j t j j t j |  j | |   t j j | | |   q)WqWWd t j |  Xd S(   s   Test update_live_symlinksi(   t   cert_managerc         3   s.   |  ]$ } | t  j j   | d   f Vq d S(   s   1.pemN(   R   R   R   (   R	   R'   (   t   archive_dir_path(    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pys	   <genexpr>S   s   t   as   1.pemN(   t   certbotR,   R   R   R   R   R   R   R#   R   R   R   R   R   t   symlinkR   t   update_live_symlinkst   getcwdt   chdirt   dirnamet   assertEqualt   realpatht   readlink(	   R   R,   t   archive_pathsR
   R%   R'   t	   live_patht   archive_patht   prev_dir(    (   R-   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_update_live_symlinksG   s0    	1$#'(   R(   R)   R*   R<   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR+   D   s   t
   DeleteTestc           B   s   e  Z d  Z d   Z e j   e j d  e j d  d      Z e j   e j d  e j d  d      Z	 e j   e j d  e j d  d      Z
 RS(   s*   Tests for certbot.cert_manager.delete
    c         C   s$   d d l  m } | j |  j  d  S(   Ni(   R,   (   R/   R,   t   deleteR   (   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   _callp   s    s)   certbot.cert_manager.lineage_for_certnames   certbot.storage.delete_filesc         C   s9   |  j  | _ d |  j _ |  j   | j |  j d  d S(   s   Test deletes   example.orgN(   t   test_rct   return_valueR   t   certnameR?   t   assert_called_once_with(   R   t   mock_delete_filest   mock_lineage_for_certnamet   unused_get_utility(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_delete_from_configt   s    
c         C   sH   |  j  | _ t j d g f |   j _ |  j   | j |  j d  d S(   s   Test deletes   example.orgN(   R@   RA   t   display_utilt   OKt	   checklistR?   RC   R   (   R   RD   RE   t	   mock_util(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_delete_interactive_single   s    
c         C   sq   |  j  | _ t j d d g f |   j _ |  j   | j |  j d  | j |  j d  |  j | j	 d  d S(   s   Test deletes   example.orgs	   other.orgi   N(
   R@   RA   RH   RI   RJ   R?   t   assert_any_callR   R5   t
   call_count(   R   RD   RE   RK   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt    test_delete_interactive_multiple   s    
(   R(   R)   R*   R?   t	   test_utilt   patch_get_utilityt   mockt   patchRG   RL   RO   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR=   l   s   						t   CertificatesTestc           B   s   e  Z d  Z d   Z e j d  e j   d     Z e j d  e j   d     Z	 e j d  e j d  e j   e j d  e j d  d        Z
 e j d  e j   d	     Z e j d
  d    Z RS(   s0   Tests for certbot.cert_manager.certificates
    c         O   s   d d l  m } | | |   S(   Ni(   t   certificates(   t   certbot.cert_managerRU   (   R   t   argst   kwargsRU   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   _certificates   s    s   certbot.cert_manager.loggerc         C   s7   |  j  |  j  |  j | j j  |  j | j  d  S(   N(   RY   R   t
   assertTruet   warningt   called(   R   t   mock_utilityt   mock_logger(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_certificates_parse_fail   s    c         C   sF   t  |  j _ |  j |  j  |  j | j j  |  j | j j  d  S(   N(	   t   TrueR   R   RY   t   assertFalset   notificationR\   RZ   R[   (   R   R]   R^   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_certificates_quiet   s    s)   certbot.crypto_util.verify_renewable_certs   certbot.storage.RenewableCerts+   certbot.cert_manager._report_human_readablec         C   si   d  | _ d | _ |  j |  j  |  j | j j  |  j | j  |  j | j  |  j | j  d  S(   Nt    (   R   RA   RY   R   Ra   R[   R\   RZ   (   R   t   mock_reportt   mock_renewable_certR]   R^   t   mock_verifier(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_certificates_parse_success   s    		c      
   C   s   t  j   } t j t j d t j j | d  d t j j | d  d t j j | d  d t	   } t j
 | j  |  j |  |  j | j j  |  j | j  t j |  d  S(   NR   R   t   work_dirt   workt   logs_dirt   logsR   (   t   tempfilet   mkdtempR    t   NamespaceConfigRR   t	   MagicMockR   R   R   R   R   R   RY   Ra   R[   R\   RZ   t   shutilt   rmtree(   R   R]   R^   t   empty_tempdirt   empty_config(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_certificates_no_files   s    s8   certbot.cert_manager.ocsp.RevocationChecker.ocsp_revokedc            s_  d  | _ d d l m   d d  l } d d  l } | j j | j j    } t	 j
 d d  } | | _ d d g | j _ t | _ | g  t	 j
 d d  d d        f d   } |   } |  j d | k  | j | j d	 d
  7_ |   } |  j d | k  |  j d | k o&d | k  | j | j d d  7_ |   } |  j d | k  |  j d | k  |  j d | k od | k  | j | j d d
  7_ |   } |  j d | k  |  j d | k od | k  t | _ t | _ |   } |  j d | k  t	 j
 d d  } | | _ d d g | j _ t | _  j |  |   } |  j t t j d |   d
  d g  _ |   } |  j t t j d |   d  d g  _ |   } |  j t t j d |   d
  d  _ |   } |  j t t j d |   d  d  _ |   } |  j t t j d |   d  d  S(   Ni(   R,   t   lineagenamet   nameonet   nametwoRB   c              s     j     S(   N(   t   _report_human_readable(    (   R,   t   mock_configt   parsed_certs(    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   <lambda>   s    s   INVALID: EXPIREDt   hoursi   s	   1 hour(s)t   VALIDt   INVALIDt   daysi   s   1 dayt   unders   3 dayss   INVALID: TEST_CERT, REVOKEDt   indescribables   thrice.nameds   INVALID:t   horrori    (   R   RA   R/   R,   t   datetimet   pytzt   UTCt   fromutct   utcnowRR   Rp   t   target_expiryt   namesR   t   is_test_certRZ   t	   timedeltaRa   R`   t   appendR5   t   lent   ret   findallR   RB   (   R   t   mock_revokedR   R   t   expiryt   certt
   get_reportt   out(    (   R,   Rz   R{   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_report_human_readable   sb    														"	"	"		"		(   R(   R)   R*   RY   RR   RS   RP   RQ   R_   Rc   Rh   Ru   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyRT      s   		$t   SearchLineagesTestc           B   sD   e  Z d  Z e j d  e j d  e j d  d      Z RS(   s0   Tests for certbot.cert_manager._search_lineages.s   certbot.util.make_or_verify_dirs"   certbot.storage.renewal_conf_filess   certbot.storage.RenewableCertc         C   sa   d g | _  t j | _ d d l m } |  j | j |  j d   d  d  |  j	 | j
  d  S(   Nt   badfilei(   R,   c         S   s   |  S(   N(    (   t   x(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|     s    t   check(   RA   R   t   CertStorageErrort   side_effectR/   R,   R5   t   _search_lineagesR   RZ   R\   (   R   Rf   t   mock_renewal_conf_filest   mock_make_or_verify_dirR,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_cert_storage_error  s    (   R(   R)   R*   RR   RS   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s   t   LineageForCertnameTestc           B   s   e  Z d  Z e j d  e j d  e j d  d      Z e j d  e j d  d     Z e j d  e j d  d     Z RS(   s3   Tests for certbot.cert_manager.lineage_for_certnames   certbot.util.make_or_verify_dirs)   certbot.storage.renewal_file_for_certnames   certbot.storage.RenewableCertc         C   sg   d | _  t j d d  } | | _  d d l m } |  j | j |  j d  |  |  j | j	  d  S(   Ns   somefile.confRv   s   example.comi(   R,   (
   RA   RR   t   MockR/   R,   R5   t   lineage_for_certnameR   RZ   R\   (   R   Rf   t   mock_renewal_conf_fileR   t
   mock_matchR,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_found_match&  s    		c         C   sL   d | _  d d l m } |  j | j |  j d  d   |  j | j  d  S(   Ns   other.com.confi(   R,   s   example.com(	   RA   R/   R,   R5   R   R   R   RZ   R\   (   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_match3  s
    	c         C   sR   t  j   | _ d d l m } |  j | j |  j d  d   |  j	 | j
  d  S(   Ni(   R,   s   example.com(   R   R   R   R/   R,   R5   R   R   R   RZ   R\   (   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_renewal_file=  s
    (   R(   R)   R*   RR   RS   R   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   #  s   	t   DomainsForCertnameTestc           B   sk   e  Z d  Z e j d  e j d  e j d  d      Z e j d  e j d  d     Z RS(   s3   Tests for certbot.cert_manager.domains_for_certnames   certbot.util.make_or_verify_dirs)   certbot.storage.renewal_file_for_certnames   certbot.storage.RenewableCertc         C   s   d | _  t j d d  } d d g } | | j _  | | _  d d l m } |  j | j |  j d  |  |  j	 | j
  d  S(   Ns   somefile.confRv   s   example.coms   example.orgi(   R,   (   RA   RR   R   R   R/   R,   R5   t   domains_for_certnameR   RZ   R\   (   R   Rf   R   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   K  s    		c         C   sL   d | _  d d l m } |  j | j |  j d  d   |  j | j  d  S(   Ns   somefile.confi(   R,   s	   other.com(	   RA   R/   R,   R5   R   R   R   RZ   R\   (   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   Z  s
    	(   R(   R)   R*   RR   RS   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   H  s   t   RenameLineageTestc           B   s   e  Z d  Z d   Z d   Z e j d  e j   d     Z	 e j   d    Z
 e j   e j d  d     Z e j   e j d  d	     Z e j   e j d  d
     Z e j   e j d  d     Z RS(   s-   Tests for certbot.cert_manager.rename_lineagec         C   s/   t  t |   j   d |  j _ d |  j _ d  S(   Ns   example.orgt   after(   R   R   R   R   RB   t   new_certname(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   h  s    c         O   s    d d l  m } | j | |   S(   Ni(   R,   (   R/   R,   t   rename_lineage(   R   RW   RX   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR?   m  s    s"   certbot.storage.renewal_conf_filesc         C   s   d  |  j _ d |  j _ g  | _ |  j t j |  j |  j  d g | _ |   } t	 j
 d f | j _ |  j t j |  j |  j  t	 j d f | j _ |  j t j |  j |  j  d  S(   Nt   twos   one.confi    i(   R   R   RB   R   RA   t   assertRaisesR   t   ErrorR?   RH   t   CANCELt   menuRI   (   R   t   mock_get_utilityR   t	   util_mock(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_certnameq  s    		c         C   s   d |  j  _ d  |  j  _ |   } t j d f | j _ |  j t	 j
 |  j |  j   t j d  f | j _ |  j t	 j
 |  j |  j   d  S(   Nt   onet   name(   R   RB   R   R   RH   R   t   inputRA   R   R   R   R?   RI   (   R   R   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_new_certname  s    	s)   certbot.cert_manager.lineage_for_certnamec         C   sA   d |  j  _ d |  j  _ d  | _ |  j t j |  j |  j   d  S(   NR   R   (	   R   RB   R   R   RA   R   R   t   ConfigurationErrorR?   (   R   RE   RF   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_existing_certname  s
    	s-   certbot.storage.RenewableCert._check_symlinksc         C   st   t  | _ |  j |  j  d d l m } | j |  j |  j j  } |  j | d  k	  |  j
 | j |  j j  d  S(   Ni(   R,   (   R`   RA   R?   R   R/   R,   R   R   RZ   R   R5   Rv   (   R   t
   mock_checkRF   R,   t   updated_lineage(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_rename_cert  s    	c         C   s   t  | _ d  |  j _ |   } t j d f | j _ |  j |  j  d d l	 m
 } | j |  j |  j j  } |  j | d  k	  |  j | j |  j j  d  S(   Ni    i(   R,   (   R`   RA   R   R   RB   RH   RI   R   R?   R/   R,   R   R   RZ   R5   Rv   (   R   R   R   R   R,   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt%   test_rename_cert_interactive_certname  s    		c         C   sl   t  | _ d |  j _ |  j t j |  j |  j  d j t	 j
 j  |  j _ |  j t j |  j |  j  d  S(   Ns   example.orgs	   one{0}two(   R`   RA   R   R   R   R   R   R?   t   formatR   R   t   sep(   R   R   RF   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt!   test_rename_cert_bad_new_certname  s
    	(   R(   R)   R*   R   R?   RR   RS   RP   RQ   R   R   R   R   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   e  s   							t   DuplicativeCertsTestc           B   s/   e  Z d  Z d   Z e j d  d    Z RS(   s!   Test to avoid duplicate lineages.c         C   s.   t  t |   j   |  j j   |  j   d  S(   N(   R   R   R   R&   R   t   _write_out_ex_kinds(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s    s   certbot.util.make_or_verify_dirc         C   s9  d d l  m } t j d  } t |  j j d   } | j |  Wd  QX| |  j d d g  } |  j	 | d  | |  j d d g  } |  j | d	 j j j d
   |  j	 | d d   | |  j d d d g  } |  j	 | d	 d   |  j | d j j j d
   | |  j d d g  } |  j	 | d  d  S(   Ni(   t   find_duplicative_certss   cert-san_512.pemt   wbs   wow.nets
   hooray.orgs   example.coms   www.example.comi    s   example.org.confi   s   something.new(   NN(   NN(   RV   R   RP   t   load_vectorR   R@   R   R   R   R5   R   RZ   t
   configfileR$   t   endswith(   R   t   unused_makedirR   t	   test_certt   ft   result(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_find_duplicative_names  s$      (   R(   R)   R*   R   RR   RS   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s   	t   CertPathToLineageTestc           B   s   e  Z d  Z d   Z d   Z d   Z d   Z d   Z e j	 d  d    Z
 e j	 d  d    Z e j	 d  d	    Z e j	 d  d
    Z RS(   s3   Tests for certbot.cert_manager.cert_path_to_lineagec         C   sg   t  t |   j   |  j j   |  j   t j j |  j	 j
 d d d  |  _ |  j d f |  j	 _ d  S(   Nt   lives   example.orgs   fullchain.pemRd   (   R   R   R   R&   R   R   R   R   R   R   R   t	   fullchaint	   cert_path(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s    
c         C   s   d d l  m } | |  S(   Ni(   t   cert_path_to_lineage(   RV   R   (   R   t
   cli_configR   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR?     s    c         C   s   d d l  m } | | |  S(   Ni(   t   _archive_files(   RV   R   (   R   R   t   filetypeR   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s    c         C   s    |  j  d |  j |  j   d  S(   Ns   example.org(   R5   R?   R   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_basic_match  s    c         C   sJ   |  j  } t j j |  j  j d d d  | _ |  j t j |  j	 |  d  S(   NR   t
   SailorMoons   fullchain.pem(
   R   R   R   R   R   R   R   R   R   R?   (   R   t   bad_test_config(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_match_exists  s    	s(   certbot.cert_manager._acceptable_matchesc         C   s>   d   g | _  |  j |  j _ |  j d |  j |  j   d  S(   Nc         S   s   |  j  S(   N(   t   fullchain_path(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|      s    s   example.org(   RA   R   R   R   R5   R?   (   R   t   mock_acceptable_matches(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_options_fullchain  s    c         C   sb   d   g | _  t j j |  j j d d d  } | d f |  j _ |  j d |  j |  j   d  S(   Nc         S   s   |  j  S(   N(   R   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|     s    R   s   example.orgs   cert.pemRd   (	   RA   R   R   R   R   R   R   R5   R?   (   R   R   t   test_cert_path(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_options_cert_path  s
    	c            sb   t  j j   j j d d d  d f   j _   f d   g | _   j d   j   j   d  S(   Nt   archives   example.orgs
   cert11.pemRd   c            s     j  |  d  S(   NR   (   R   (   R   (   R   (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|     s    (	   R   R   R   R   R   R   RA   R5   R?   (   R   R   (    (   R   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_options_archive_cert  s    c            sb   t  j j   j j d d d  d f   j _   f d   g | _   j d   j   j   d  S(   NR   s   example.orgs   fullchain11.pemRd   c            s     j  |  d  S(   NR   (   R   (   R   (   R   (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|     s    (	   R   R   R   R   R   R   RA   R5   R?   (   R   R   (    (   R   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_options_archive_fullchain  s    (   R(   R)   R*   R   R?   R   R   R   RR   RS   R   R   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s   					t   MatchAndCheckOverlapsc           B   sY   e  Z d  Z d   Z d   Z d   Z e j d  d    Z e j d  d    Z	 RS(   sU   Tests for certbot.cert_manager.match_and_check_overlaps w/o overlapping archive dirs.c         C   sg   t  t |   j   |  j j   |  j   t j j |  j	 j
 d d d  |  _ |  j d f |  j	 _ d  S(   NR   s   example.orgs   fullchain.pemRd   (   R   R   R   R&   R   R   R   R   R   R   R   R   R   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR      s    
c         C   s#   d d l  m } | | | | |  S(   Ni(   t   match_and_check_overlaps(   RV   R   (   R   R   t   acceptable_matchest
   match_funct   rv_funcR   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR?   (  s    c            sK   d d l  m }   j d g   j   j |     f d   d     d  S(   Ni(   t   _acceptable_matchess   example.orgc            s     j  j d S(   Ni    (   R   R   (   R   (   R   (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|   /  s    c         S   s   |  j  S(   N(   Rv   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR|   /  s    (   RV   R   R5   R?   R   (   R   R   (    (   R   sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   ,  s    s%   certbot.cert_manager._search_lineagesc         C   s2   g  | _  |  j t j |  j |  j d  d  d   d  S(   N(   RA   R   R   R   R?   R   R   (   R   t   mock_search_lineages(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_no_matches1  s    	c         C   s8   d d g | _  |  j t j |  j |  j d  d  d   d  S(   Nt   spidert   dance(   RA   R   R   t   OverlappingMatchFoundR?   R   R   (   R   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_too_many_matches6  s    (
   R(   R)   R*   R   R?   R   RR   RS   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR     s   			t   GetCertnameTestc           B   s
  e  Z d  Z d   Z d   Z e j d  e j d  d     Z e j d  e j d  d     Z e j d  e j d  d     Z	 e j d  e j d  d     Z
 e j d  e j d  d	     Z e j d  e j d  d
     Z RS(   s   Tests for certbot.cert_manager.c         C   s@   t  j   |  _ |  j j   |  _ t j   |  _ d  |  j _	 d  S(   N(
   RP   RQ   t   get_utility_patcht   startR   RR   Rp   R   R   RB   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   ?  s    c         C   s   |  j  j   d  S(   N(   R   t   stop(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   tearDownE  s    s"   certbot.storage.renewal_conf_filess(   certbot.storage.lineagename_for_filenamec         C   s   d g | _  d | _  d d l m } d } t j d f |  j   j _  |  j | j |  j	 d d t
 d g  |  j | |  j   j j d d k  d  S(	   Ns   example.com.confs   example.comi(   R,   s   Which certificate would youi    t   verbt   allow_multiple(   RA   R/   R,   RH   RI   R   R   t   assertEqualst   get_certnamesR   R   RZ   t	   call_args(   R   t	   mock_namet
   mock_filesR,   t   prompt(    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_get_certnamesH  s    	c         C   s   d g | _  d | _  d d l m } d } t j d f |  j   j _  |  j | j |  j	 d d t
 d	 | d g  |  j |  j   j j d d |  d  S(
   Ns   example.com.confs   example.comi(   R,   s   custom prompti    R   R   t   custom_prompt(   RA   R/   R,   RH   RI   R   R   R   R   R   R   R   (   R   R   R   R,   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt    test_get_certnames_custom_promptV  s    	
c         C   si   d g | _  d | _  d d l m } t j d f |  j   j _  |  j t j	 | j
 |  j d d t d  S(   Ns   example.com.confs   example.comi(   R,   i    t   erroring_anywayR   (   RA   R/   R,   RH   R   R   R   R   R   R   R   R   R   (   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   test_get_certnames_user_aborte  s    	c         C   s   d g | _  d | _  d d l m } d } t j d g f |  j   j _  |  j | j |  j	 d d t
 d g  |  j | |  j   j j d d k  d  S(	   Ns   example.com.confs   example.comi(   R,   s   Which certificate(s) would youR   R   i    (   RA   R/   R,   RH   RI   R   RJ   R   R   R   R`   RZ   R   (   R   R   R   R,   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt!   test_get_certnames_allow_multipleq  s    	c         C   s   d g | _  d | _  d d l m } d } t j d g f |  j   j _  |  j | j |  j	 d d t
 d | d g  |  j |  j   j j d	 d	 |  d  S(
   Ns   example.com.confs   example.comi(   R,   s   custom promptR   R   R   i    (   RA   R/   R,   RH   RI   R   RJ   R   R   R   R`   R   (   R   R   R   R,   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt/   test_get_certnames_allow_multiple_custom_prompt  s    	
c         C   si   d g | _  d | _  d d l m } t j g  f |  j   j _  |  j t j	 | j
 |  j d d t d  S(   Ns   example.com.confs   example.comi(   R,   R   R   (   RA   R/   R,   RH   R   R   RJ   R   R   R   R   R   R`   (   R   R   R   R,   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt,   test_get_certnames_allow_multiple_user_abort  s    	(   R(   R)   R*   R   R   RR   RS   R   R   R  R  R  R  (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyR   <  s   		t   __main__($   R*   R   R   Rq   Rm   t   unittestR!   RR   R/   R    R   t   certbot.displayR   RH   t   certbot.storageR   t   certbot.testsR   RP   t   ConfigTestCaseR   R+   t   BaseRenewableCertTestR=   RT   R   R   R   R   R   R   R   t   TestCaseR   R(   t   main(    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/tests/cert_manager_test.pyt   <module>   s6   -(,z%W&;b