ó
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 Z e j j e j d ƒ ƒ Z d	 e f d
 „  ƒ  YZ d „  Z d S(   s'   Base test class for DNS authenticators.iÿÿÿÿN(   t
   challenges(   t   achallenges(   t	   acme_util(   t   utils   example.coms   rsa512_key.pemt   BaseAuthenticatorTestc           B   sJ   e  Z d  Z e j d e j d e d e ƒ Z	 d „  Z
 d „  Z d „  Z RS(   sÜ   
    A base test class to reduce duplication between test code for DNS Authenticator Plugins.

    Assumes:
     * That subclasses also subclass unittest.TestCase
     * That the authenticator is stored as self.auth
    t   challbt   domaint   account_keyc         C   s&   |  j  t |  j j ƒ  t j ƒ ƒ d  S(   N(   t
   assertTruet
   isinstancet   autht	   more_infot   sixt   string_types(   t   self(    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyt   test_more_info   s    c         C   s&   |  j  |  j j d  ƒ t j g ƒ d  S(   N(   t   assertEqualR
   t   get_chall_preft   NoneR    t   DNS01(   R   (    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyt   test_get_chall_pref#   s    c         C   sE   t  j ƒ  } |  j j | ƒ | j d d t d t  j d t  j ƒd  S(   Ns   propagation-secondst   typet   defaultt   help(   t   mockt	   MagicMockR
   t   add_parser_argumentst   assert_any_callt   intt   ANY(   R   t   m(    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyt   test_parser_arguments'   s    (   t   __name__t
   __module__t   __doc__R   t"   KeyAuthorizationAnnotatedChallengeR   R   t   DOMAINt   KEYt   achallR   R   R   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyR      s   			c         C   sg   t  j ƒ  } x |  D] } |  | | | <q Wt | d ƒ  } | j d | ƒ Wd QXt j | d ƒ d S(   s”   Write the specified values to a config file.

    :param dict values: A map of values to write.
    :param str path: Where to write the values.
    t   wbt   outfileNi€  (   t	   configobjt	   ConfigObjt   opent   writet   ost   chmod(   t   valuest   patht   configt   keyt   f(    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyR,   0   s    (   R"   R-   R)   t   josepyt   joseR   R   t   acmeR    t   certbotR   t   certbot.testsR   R   t	   test_utilR$   t   JWKRSAt   loadt   load_vectorR%   t   objectR   R,   (    (    (    sC   /usr/lib/python2.7/dist-packages/certbot/plugins/dns_test_common.pyt   <module>   s   