ó
Y[c        	   @   sM  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 e j d d	 d
 d d e j d d ƒ ƒZ e j d d d
 d d e j d d ƒ ƒZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ e d k rIe j ƒ  n  d S(   s    Tests for certbot.plugins.disco.iÿÿÿÿN(   t   List(   t   errors(   t
   interfaces(   t
   standalone(   t   webroott   sas   certbot.plugins.standalonet   attrst   Authenticatort   distt   keyt   certbott   wrs   certbot.plugins.webroott   PluginEntryPointTestc           B   s•   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s1   Tests for certbot.plugins.disco.PluginEntryPoint.c         C   s¿   t  j d d d t j d d ƒ ƒ|  _ t  j d d d t j d d ƒ ƒ|  _ t  j d d	 d t j d d ƒ ƒ|  _ t  j d
 d d t j d d ƒ ƒ|  _ d d l m	 } | t
 ƒ |  _ d  S(   Nt   ep1s   p1.ep1R   R	   t   p1s   p2.ep2t   p2t   ep2s
   p2.foo.ep2t   ep3s   a.ep3t   p3iÿÿÿÿ(   t   PluginEntryPoint(   t   pkg_resourcest
   EntryPointt   mockt	   MagicMockR   t   ep1primR   R   t   certbot.plugins.discoR   t   EP_SAt	   plugin_ep(   t   selfR   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   setUp   s    !!!!c         C   s‚   d d l  m } i d |  j 6d |  j 6d |  j 6d |  j 6d t 6} x6 t j | ƒ D]% \ } } |  j	 | | j
 | ƒ ƒ qU Wd  S(   Niÿÿÿÿ(   R   s   p1:ep1s   p2:ep1s   p2:ep2s   p3:ep3R   (   R   R   R   R   R   R   R   t   sixt	   iteritemst   assertEqualt   entry_point_to_plugin_name(   R   R   t   namest   entry_pointt   name(    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_entry_point_to_plugin_name.   s    




c         C   s   |  j  d |  j j k ƒ d  S(   Ns   temporary webserver(   t
   assertTrueR   t   description(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_description=   s    c         C   s2   t  j d d ƒ |  j _ |  j d |  j j ƒ d  S(   NR'   t   Descs	   Desc (sa)(   R   R   R   t
   plugin_clsR    t   description_with_name(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_description_with_name@   s    c         C   s2   t  j d d ƒ |  j _ |  j d |  j j ƒ d  S(   Nt   long_descriptions	   Long desc(   R   R   R   R*   R    R-   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_long_descriptionE   s    	c         C   s;   t  j d d d d g ƒ |  j _ |  j d |  j j ƒ d  S(   NR'   s   Long desc not foundt   spec(   R   R   R   R*   R    R-   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt!   test_long_description_nonexistentK   s    	c         C   sg   |  j  |  j j t j f ƒ ƒ |  j |  j j t j f ƒ ƒ |  j |  j j t j t j f ƒ ƒ d  S(   N(   R&   R   t   ifacesR   t   IAuthenticatort   assertFalset
   IInstaller(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_ifacesQ   s    c         C   s´   |  j  |  j j ƒ |  j  |  j j ƒ |  j  |  j j ƒ |  j  |  j j ƒ |  j |  j j d  k ƒ |  j |  j j	 t
 k ƒ |  j d |  j j ƒ |  j |  j j t j k ƒ d  S(   NR   (   R3   R   t   initializedt   preparedt   misconfiguredt	   availableR&   t   problemt   NoneR#   R   R    R$   R*   R   R   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test__init__W   s    c         C   sî   t  j ƒ  } |  j j d | ƒ } |  j |  j j ƒ |  j | j | k ƒ |  j |  j j ƒ  | k ƒ |  j | j | k ƒ |  j |  j j d ƒ | k ƒ |  j | j | k ƒ |  j |  j j ƒ |  j |  j j	 ƒ |  j |  j j
 ƒ d  S(   Nt   configi{   (   R   R   R   t   initR&   R6   R=   R3   R7   R8   R9   (   R   R=   t   plugin(    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt	   test_initb   s    c      	      s  t  j d d ƒ ‰  t  j d d ƒ ‰ t  j d d ƒ ‰ t  j ƒ  |  j _ ‰ t j j } t  j d ƒ ° ‰ | ˆ _ ‡  ‡ ‡ ‡ ‡ f d †  } | ˆ j j	 _
 |  j |  j j ˆ  f ƒ ƒ |  j |  j j ˆ  ˆ f ƒ ƒ |  j |  j j ˆ f ƒ ƒ |  j |  j j ˆ  ˆ f ƒ ƒ Wd  QXd  S(   Nt   __name__t   iface1t   iface2t   iface3s$   certbot.plugins.disco.zope.interfacec            sd   | ˆ k s t  ‚ |  ˆ  k s< |  ˆ k s< |  ˆ k s< t  ‚ |  ˆ k r` ˆ j j d  d  ƒ ‚ n  d  S(   N(   t   AssertionErrort
   exceptionst   BrokenImplementationR;   (   t   ifacet   obj(   RB   RC   RD   t	   mock_zopeR?   (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   verify_object~   s    *(   R   R   R   t   _initializedt   zopet	   interfaceRF   t   patcht   verifyt   verifyObjectt   side_effectR&   R3   (   R   RF   RK   (    (   RB   RC   RD   RJ   R?   s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_verifyr   s    	c         C   sc   t  j ƒ  } |  j j d | ƒ |  j j ƒ  |  j |  j j ƒ |  j |  j j ƒ t	 |  j ƒ d  S(   NR=   (
   R   R   R   R>   t   prepareR&   R7   R3   R8   t   str(   R   R=   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_prepare‰   s    c         C   s¥   t  j ƒ  } t j | j _ | |  j _ |  j t	 |  j j ƒ  t j ƒ ƒ |  j |  j j
 ƒ |  j |  j j ƒ |  j t	 |  j j t j ƒ ƒ |  j |  j j ƒ d  S(   N(   R   R   R   t   MisconfigurationErrorRT   RR   R   RL   R&   t
   isinstanceR7   R8   R:   R9   (   R   R?   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_prepare_misconfigured“   s    c         C   s†   t  j ƒ  } t j | j _ | |  j _ |  j t	 |  j j ƒ  t j ƒ ƒ |  j |  j j
 ƒ |  j |  j j ƒ |  j |  j j ƒ d  S(   N(   R   R   R   t   NoInstallationErrorRT   RR   R   RL   R&   RX   R7   R3   R8   R9   (   R   R?   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_prepare_no_installation    s    c         C   s†   t  j ƒ  } t j | j _ | |  j _ |  j t	 |  j j ƒ  t j ƒ ƒ |  j |  j j
 ƒ |  j |  j j ƒ |  j |  j j ƒ d  S(   N(   R   R   R   t   PluginErrorRT   RR   R   RL   R&   RX   R7   R3   R8   R9   (   R   R?   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt!   test_prepare_generic_plugin_error«   s    "c         C   s   |  j  d t |  j ƒ ƒ d  S(   Ns   PluginEntryPoint#sa(   R    t   reprR   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt	   test_reprµ   s    (   RA   t
   __module__t   __doc__R   R%   R(   R,   R.   R0   R5   R<   R@   RS   RV   RY   R[   R]   R_   (    (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR      s    											
			
t   PluginsRegistryTestc           B   s¤   e  Z d  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  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.disco.PluginsRegistry.c         C   s   d d l  m } | | ƒ S(   Niÿÿÿÿ(   t   PluginsRegistry(   R   Rc   (   t   clst   pluginsRc   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   _create_new_registry¼   s    c         C   s\   t  j ƒ  |  _ d |  j _ t |  j j _ i |  j |  j j 6|  _ |  j |  j ƒ |  _	 d  S(   NR   (
   R   R   R   R$   t	   TypeErrort   __hash__RR   Re   Rf   t   reg(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR   Á   s
    c         C   sÊ   d d l  m } t j d ƒ 7 } t t g ƒ t t g ƒ g | j _ | j	 ƒ  } Wd  QX|  j
 | d j t j k ƒ |  j
 | d j t k ƒ |  j
 | d j t j k ƒ |  j
 | d j t k ƒ d  S(   Niÿÿÿÿ(   Rc   s#   certbot.plugins.disco.pkg_resourcesR   R   (   R   Rc   R   RO   t   iterR   t   EP_WRt   iter_entry_pointsRR   t   find_allR&   R*   R   R   R#   R   (   R   Rc   t   mock_pkgRe   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_find_allÈ   s    c         C   s   |  j  |  j |  j d ƒ d  S(   NR   (   R    R   Ri   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_getitemÓ   s    c         C   s    |  j  d g t |  j ƒ ƒ d  S(   NR   (   R    t   listRi   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt	   test_iterÖ   s    c         C   s<   |  j  d t |  j i  ƒ ƒ ƒ |  j  d t |  j ƒ ƒ d  S(   Ni    i   (   R    t   lenRf   Ri   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_lenÙ   s    c         C   sE   d |  j  j _ |  j d g |  j j d ƒ ƒ |  j  j j d ƒ d  S(   Nt   bazt   bar(   R   R>   t   return_valueR    Ri   t   assert_called_once_with(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR@   Ý   s    c         C   sE   |  j  |  j |  j j d „  ƒ ƒ |  j  i  |  j j d „  ƒ ƒ d  S(   Nc         S   s   |  j  j d ƒ S(   Nt   m(   R$   t
   startswith(   t   p_ep(    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   <lambda>å   s    c         S   s   |  j  j d ƒ S(   Nt   b(   R$   Rz   (   R{   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR|   ç   s    (   R    Re   Ri   t   filter(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_filterâ   s
    c         C   s]   t  |  j j _ |  j |  j |  j j ƒ  j ƒ t |  j j _ |  j i  |  j j ƒ  j ƒ d  S(   N(	   t   TrueR   R1   Rw   R    Re   Ri   t   _pluginst   False(   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR5   é   s    c         C   so   t  |  j j _ |  j |  j |  j j t j ƒ  ƒ j	 ƒ t
 |  j j _ |  j i  |  j j t j ƒ  ƒ j	 ƒ d  S(   N(   R€   R   RP   Rw   R    Re   Ri   R   R   R   R‚   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyRS   ð   s
    "c         C   s?   d |  j  j _ |  j d g |  j j ƒ  ƒ |  j  j j ƒ  d  S(   NRu   (   R   RT   Rw   R    Ri   Rx   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyRV   ø   s    c            s[   g  ‰  t  ‡  f d †  t j Dƒ ƒ } |  j | ƒ } | j ƒ  |  j ˆ  t t j ƒ ƒ d  S(   Nc         3   s6   |  ], } | t  j d  t j ˆ  j | ƒ ƒ f Vq d S(   RT   N(   R   R   t	   functoolst   partialt   append(   t   .0t   c(   t   order(    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pys	   <genexpr>   s   (   t   dictt   stringt   ascii_lettersRf   RT   R    t   sorted(   R   Re   Ri   (    (   Rˆ   s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_prepare_orderý   s    
c         C   sW   t  |  j _ |  j |  j |  j j ƒ  j ƒ t |  j _ |  j i  |  j j ƒ  j ƒ d  S(   N(   R€   R   R9   R    Re   Ri   R   R‚   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_available  s    c         C   s`   |  j  |  j j t j ƒ  ƒ d  k ƒ t |  j _ |  j  |  j j |  j j	 ƒ  ƒ |  j k ƒ d  S(   N(
   R&   Ri   t	   find_initR   t   MockR;   R€   R   R6   R>   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_find_init  s    %c         C   s,   d „  |  j  _ |  j d t |  j ƒ ƒ d  S(   Nc         S   s   d S(   Ns   PluginEntryPoint#mock(    (   t   _(    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR|     s    s&   PluginsRegistry(PluginEntryPoint#mock)(   R   t   __repr__R    R^   Ri   (   R   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR_     s    	c         C   s   |  j  d t |  j i  ƒ ƒ ƒ d „  |  j _ |  j  d t |  j ƒ ƒ i |  j |  j j 6d d 6} |  j | ƒ } |  j  d t | ƒ ƒ d  S(   Ns
   No pluginsc         S   s   d S(   NR   (    (   R’   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyR|     s    R   t   Bart   foos	   Bar

Mock(   R    RU   Rf   R   t   __str__Ri   R$   (   R   Re   Ri   (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   test_str  s    (   RA   R`   Ra   t   classmethodRf   R   Ro   Rp   Rr   Rt   R@   R   R5   RS   RV   R   RŽ   R‘   R_   R—   (    (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyRb   ¹   s"   														t   __main__(   s   Authenticator(   s   Authenticator(   Ra   Rƒ   RŠ   t   unittestR   R   R   t   zope.interfaceRM   t   acme.magic_typingR    R
   R   R   t   certbot.pluginsR   R   R   R   R   Rk   t   TestCaseR   Rb   RA   t   main(    (    (    s>   /usr/lib/python2.7/dist-packages/certbot/plugins/disco_test.pyt   <module>   s0   		j