ó
Y[c           @   s¬   d  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 e j f d „  ƒ  YZ e d	 k r¨ e j ƒ  n  d S(
   s    Tests for certbot.plugins.manualiÿÿÿÿN(   t
   challenges(   t   errors(   t	   acme_util(   t   utilt   AuthenticatorTestc           B   sŒ   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j	 ƒ  d „  ƒ Z
 e j	 ƒ  d „  ƒ Z d „  Z e j	 ƒ  d	 „  ƒ Z d
 „  Z RS(   s/   Tests for certbot.plugins.manual.Authenticator.c         C   sh  t  t |  ƒ j ƒ  t j |  _ t j |  _ t j |  _	 |  j |  j |  j	 g |  _
 x6 d d d g D]% } t j t j j |  j | ƒ ƒ qb Wt j d d d d  d d  d t d	 t d
 t d t j j |  j d ƒ d t j j |  j d ƒ d t j j |  j d ƒ d t j j |  j d ƒ d t j j |  j d ƒ d d ƒ |  _ d d l m } | |  j d d ƒ|  _ d  S(   Nt
   config_dirt   work_dirt   in_progresst   http01_porti    t   manual_auth_hookt   manual_cleanup_hookt   manual_public_ip_logging_okt   noninteractive_modet   validate_hookst
   backup_dirt   temp_checkpoint_dirt   in_progress_dirt
   in_progesst   tls_sni_01_porti‰  iÿÿÿÿ(   t   Authenticatort   namet   manual(   t   superR   t   setUpR   t   HTTP01_At   http_achallt   DNS01_At
   dns_achallt
   TLSSNI01_At   tls_sni_achallt   achallst   ost   mkdirt   patht   joint   tempdirt   mockt	   MagicMockt   Nonet   Falset   configt   certbot.plugins.manualR   t   auth(   t   selft   dR   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyR      s(    #		c         C   s)   t  |  j _ |  j t j |  j j ƒ d  S(   N(   t   TrueR(   R   t   assertRaisesR   t   PluginErrorR*   t   prepare(   R+   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt#   test_prepare_no_hook_noninteractive-   s    c         C   sD   t  j j t  j ƒ |  j _ t |  j _ |  j t	 j
 |  j j ƒ d  S(   N(   R   R!   t   abspatht   sepR(   R	   R-   R   R.   R   t   HookCommandNotFoundR*   R0   (   R+   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_prepare_bad_hook1   s    c         C   s&   |  j  t |  j j ƒ  t j ƒ ƒ d  S(   N(   t
   assertTruet
   isinstanceR*   t	   more_infot   sixt   string_types(   R+   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_more_info6   s    c         C   s2   |  j  |  j j d ƒ t j t j t j g ƒ d  S(   Ns   example.org(   t   assertEqualR*   t   get_chall_prefR    t   HTTP01t   DNS01t   TLSSNI01(   R+   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_get_chall_pref9   s    c         C   s/   t  | ƒ  j _ |  j t j |  j j g  ƒ d  S(   N(   R'   t   yesnot   return_valueR.   R   R/   R*   t   perform(   R+   t   mock_get_utility(    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_ip_logging_not_ok?   s    c         C   s6   t  | ƒ  j _ |  j j g  ƒ |  j |  j j ƒ d  S(   N(   R-   RB   RC   R*   RD   R6   R(   R   (   R+   RE   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_ip_logging_okD   s    c         C   s•  t  |  j _ d |  j _ d j |  j j d d d d |  j j |  j j ƒ ƒ } d j |  j	 j |  j	 j
 j d ƒ d d d |  j	 j |  j	 j ƒ ƒ } |  j |  j j |  j ƒ g  |  j D] } | j | j ƒ ^ qµ ƒ |  j |  j j |  j d | ƒ |  j |  j j |  j	 d | ƒ d j |  j j d |  j j j |  j ƒ |  j j j |  j ƒ |  j j j |  j ƒ d	 ƒ } |  j |  j j |  j d | ƒ d  S(
   NsÎ   echo ${CERTBOT_DOMAIN}; echo ${CERTBOT_TOKEN:-notoken}; echo ${CERTBOT_CERT_PATH:-nocert}; echo ${CERTBOT_KEY_PATH:-nokey}; echo ${CERTBOT_SNI_DOMAIN:-nosnidomain}; echo ${CERTBOT_VALIDATION:-novalidation};s   {0}
{1}
{2}
{3}
{4}
{5}t   notokent   nocertt   nokeyt   nosnidomaint   tokent   CERTBOT_AUTH_OUTPUTt   novalidation(   R-   R(   R   R	   t   formatR   t   domaint
   validationt   account_keyR   t   challt   encodeR<   R*   RD   R   t   responset   envR   t
   tls_sni_01t   get_cert_patht   get_key_patht   get_z_domain(   R+   t   dns_expectedt   http_expectedt   achallt   tls_sni_expected(    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_script_performJ   s8    		)	c         C   sÿ   t  |  j _ |  j |  j j |  j ƒ g  |  j D] } | j | j ƒ ^ q. ƒ x« t	 | ƒ  j
 j ƒ D]” \ } \ } } |  j | } t | j t j ƒ rÃ |  j |  j j j |  j ƒ | d k ƒ n# |  j | j | j ƒ | d k ƒ |  j | d ƒ qc Wd  S(   Ni    t   wrap(   R-   R(   R   R<   R*   RD   R   RU   RR   t	   enumeratet   notificationt   call_args_listR7   RS   R    R@   R6   RW   RX   R   RQ   t   assertFalse(   R+   RE   R]   t   it   argst   kwargs(    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_manual_performq   s    )(c         C   sØ  t  |  j _ d |  j _ d |  j _ |  j j |  j ƒ xš|  j D]} |  j j | g ƒ |  j	 t
 j d d ƒ |  j	 t
 j d | j ƒ t | j t j ƒ sµ t | j t j ƒ rÛ |  j	 t
 j d | j | j ƒ ƒ n  t | j t j ƒ r|  j	 t
 j d | j j d ƒ ƒ n |  j d t
 j k ƒ t | j t j ƒ rA |  j	 t
 j d	 |  j j j | ƒ ƒ |  j	 t
 j d
 |  j j j | ƒ ƒ |  j t
 j j t
 j d	 ƒ ƒ |  j t
 j j t
 j d
 ƒ ƒ qA qA Wd  S(   Ns	   echo foo;s	   # cleanupRM   t   foot   CERTBOT_DOMAINt   CERTBOT_VALIDATIONt   CERTBOT_TOKENRL   t   CERTBOT_CERT_PATHt   CERTBOT_KEY_PATH(   R-   R(   R   R	   R
   R*   RD   R   t   cleanupR<   R   t   environRP   R7   RS   R    R>   R?   RQ   RR   RT   Rd   R@   RW   RX   RY   R!   t   exists(   R+   R]   (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   test_cleanup‚   s:    



(   t   __name__t
   __module__t   __doc__R   R1   R5   R;   RA   t	   test_utilt   patch_get_utilityRF   RG   R_   Rh   Rr   (    (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyR      s   						't   __main__(   Ru   R   t   unittestR9   R$   t   acmeR    t   certbotR   t   certbot.testsR   R   Rv   t   TempDirTestCaseR   Rs   t   main(    (    (    s?   /usr/lib/python2.7/dist-packages/certbot/plugins/manual_test.pyt   <module>   s   •