ó
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 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 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 letsencrypt.plugins.selectioniÿÿÿÿN(   t   errors(   t
   interfaces(   t   List(   t   util(   t   PluginsRegistryt   ConveniencePickPluginTestc           B   s2   e  Z d  Z d „  Z d „  Z d „  Z d „  Z RS(   s+   Tests for certbot.plugins.selection.pick_*.c         C   s   t  j ƒ  } t  j ƒ  } t  j ƒ  } t  j d ƒ / } d | _ |  j d | | | | d ƒ ƒ Wd  QX| j | | | d | ƒ d  S(   Ns%   certbot.plugins.selection.pick_plugint   foos	   Question?(   t   mockt   Mockt   patcht   return_valuet   assertEqualt   assert_called_once_with(   t   selft   funt   ifacest   configt   defaultt   pluginst   mock_p(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   _test   s    	%c         C   s*   d d l  m } |  j | t j f ƒ d  S(   Niÿÿÿÿ(   t   pick_authenticator(   t   certbot.plugins.selectionR   R   R   t   IAuthenticator(   R   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_authenticator    s    c         C   s*   d d l  m } |  j | t j f ƒ d  S(   Niÿÿÿÿ(   t   pick_installer(   R   R   R   R   t
   IInstaller(   R   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_installer$   s    c         C   s0   d d l  m } |  j | t j t j f ƒ d  S(   Niÿÿÿÿ(   t   pick_configurator(   R   R   R   R   R   R   (   R   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_configurator(   s    	(   t   __name__t
   __module__t   __doc__R   R   R   R   (    (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR      s
   			t   PickPluginTestc           B   s_   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   s0   Tests for certbot.plugins.selection.pick_plugin.c         C   sC   t  j d t ƒ |  _ d  |  _ t  j ƒ  |  _ d |  _ g  |  _	 d  S(   Nt   noninteractive_modes	   Question?(
   R   R   t   FalseR   t   NoneR   t	   MagicMockt   regt   questionR   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   setUp1   s
    		c         C   s5   d d l  m } | |  j |  j |  j |  j |  j ƒ S(   Niÿÿÿÿ(   t   pick_plugin(   R   R)   R   R   R&   R'   R   (   R   R)   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   _call8   s    c         C   s0   d |  _  |  j ƒ  |  j d |  j j j ƒ d  S(   NR   i   (   R   R*   R   R&   t   filtert
   call_count(   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_default_provided=   s    	
c         C   s-   |  j  ƒ  |  j d |  j j ƒ  j j ƒ d  S(   Ni   (   R*   R   R&   t   visibleR   R,   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_no_defaultB   s    
c         C   s   |  j  |  j ƒ  d  k ƒ d  S(   N(   t
   assertTrueR*   R$   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_no_candidateF   s    c         C   sc   t  j ƒ  } d | j _ t | _ i | d 6|  j j ƒ  j ƒ  j	 ƒ  j
 _ |  j d |  j ƒ  ƒ d  S(   NR   t   bar(   R   R%   t   initR
   R#   t   misconfiguredR&   R.   R   t   verifyt	   availableR   R*   (   R   t	   plugin_ep(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_singleI   s    	%c         C   sf   t  j ƒ  } d | j _ t | _ i | d 6|  j j ƒ  j ƒ  j	 ƒ  j
 _ |  j |  j ƒ  d  k ƒ d  S(   NR   R2   (   R   R%   R3   R
   t   TrueR4   R&   R.   R   R5   R6   R0   R*   R$   (   R   R7   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_single_misconfiguredR   s    	%c         C   s›   t  j ƒ  } d | j _ i | d 6| d 6|  j j ƒ  j ƒ  j ƒ  j _ t  j	 d ƒ & } | | _ |  j
 d |  j ƒ  ƒ Wd  QX| j | | g |  j ƒ d  S(   NR   R2   t   bazs'   certbot.plugins.selection.choose_plugin(   R   R%   R3   R
   R&   R.   R   R5   R6   R	   R   R*   R   R'   (   R   R7   t   mock_choose(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_multiple[   s    %	c         C   sm   i d  d 6d  d 6|  j j ƒ  j ƒ  j ƒ  j _ t j d ƒ ) } d  | _ |  j	 |  j
 ƒ  d  k ƒ Wd  QXd  S(   NR2   R;   s'   certbot.plugins.selection.choose_plugin(   R$   R&   R.   R   R5   R6   R
   R   R	   R0   R*   (   R   R<   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_choose_plugin_noneh   s    %	(   R   R   R    R(   R*   R-   R/   R1   R8   R:   R=   R>   (    (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR!   .   s   										t   ChoosePluginTestc           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	 e j d ƒ d „  ƒ Z
 RS(   s2   Tests for certbot.plugins.selection.choose_plugin.c         C   s   t  j j t j t j t ƒ ƒ t j	 d d d t
 ƒ |  _ d |  j _ t j	 d d d t ƒ |  _ d |  j j ƒ  j _ |  j |  j g |  _ d  S(   Nt   description_with_namet   aR4   t   apachet   st
   standalone(   t   zopet	   componentt   provideUtilityt   display_utilt   FileDisplayt   syst   stdoutR#   R   R   R9   t   mock_apachet   namet
   mock_standR3   t	   more_infoR
   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR(   v   s    
		c         C   s    d d l  m } | |  j d ƒ S(   Niÿÿÿÿ(   t   choose_plugins	   Question?(   R   RP   R   (   R   RP   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR*   „   s    s    certbot.plugins.selection.z_utilc         C   s]   t  j d f t  j d f g | ƒ  j _ |  j |  j |  j ƒ  ƒ |  j | ƒ  j j d ƒ d  S(   Ni    i   (	   RH   t   OKt   menut   side_effectR   RN   R*   t   notificationR,   (   R   t	   mock_util(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_selectionˆ   s    c         C   s8   t  j d f g | ƒ  j _ |  j |  j |  j ƒ  ƒ d  S(   Ni   (   RH   RQ   RR   RS   R   RN   R*   (   R   RU   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_more_info   s    c         C   s5   t  j d f | ƒ  j _ |  j |  j ƒ  d  k ƒ d  S(   Ni    (   RH   t   CANCELRR   R
   R0   R*   R$   (   R   RU   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_no_choice—   s    c         C   sÏ   t  j d d d t ƒ } d | j ƒ  j _ d | _ | |  j d <t j	 d f | ƒ  j
 _ t j j d ƒ d  k } | r† d	 t j d <n  z |  j ƒ  Wd  | rª t j d =n  X|  j d
 | ƒ  j
 j d k ƒ d  S(   NR@   t   nR4   s   nginx plugint   nginxi   i    t   CERTBOT_AUTOR   R   (   R   R   R#   R3   RO   R
   RM   R   RH   RX   RR   t   ost   environt   getR$   R*   R0   t	   call_args(   R   RU   t
   mock_nginxt   unset_cb_auto(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_new_interaction_avoidanceœ   s    		(   R   R   R    R(   R*   t	   test_utilt   patch_get_utilityRV   RW   RY   Rc   (    (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR?   s   s   		t   GetUnpreparedInstallerTestc           B   sD   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s=   Tests for certbot.plugins.selection.get_unprepared_installer.c         C   s   t  t |  ƒ j ƒ  t j d d ƒ |  _ d |  j _ t j d d ƒ |  _ d |  j _ t j ƒ  |  _	 |  j	 |  j j
 _ t i |  j d 6|  j d 6ƒ |  _ d  S(   NR@   t   afailRB   (   t   superRf   R(   R   R   t   mock_apache_fail_epRM   t   mock_apache_epR%   t   mock_apache_pluginR3   R
   R   R   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR(   ³   s    		
c         C   s#   d d l  m } | |  j |  j ƒ S(   Niÿÿÿÿ(   t   get_unprepared_installer(   R   Rl   R   R   (   R   Rl   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyR*   Â   s    c         C   s&   d  |  j _ |  j |  j ƒ  d  ƒ d  S(   N(   R$   R   t   configuratort   assertEqualsR*   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_no_installer_definedÆ   s    c         C   s5   d |  j  _ t i  ƒ |  _ |  j t j |  j ƒ d  S(   NRB   (   R   Rm   R   R   t   assertRaisesR    t   PluginSelectionErrorR*   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_no_available_installersÊ   s    c         C   s2   d |  j  _ |  j ƒ  } |  j | |  j k ƒ d  S(   NRB   (   R   Rm   R*   R0   Rk   (   R   t	   installer(    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   test_get_pluginÏ   s    c         C   s2   d |  j  _ d |  j _ |  j t j |  j ƒ d  S(   NRB   (   R   Rm   Ri   RM   Rp   R    Rq   R*   (   R   (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt!   test_multiple_installers_returnedÔ   s    (	   R   R   R    R(   R*   Ro   Rr   Rt   Ru   (    (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyRf   °   s   					t   __main__(   R    R]   RJ   t   unittestR   t   zope.componentRE   t   certbotR    R   t   acme.magic_typingR   t   certbot.displayR   RH   t   certbot.plugins.discoR   t   certbot.testsRd   t   TestCaseR   R!   R?   t   ConfigTestCaseRf   R   t   main(    (    (    sB   /usr/lib/python2.7/dist-packages/certbot/plugins/selection_test.pyt   <module>   s"   E=+