
Y[c           @   sx  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 Z d d l	 m
 Z
 d d l m Z d d l j j 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 d e j f d     YZ d e j f d     YZ d e j f d     YZ y
 e Z Wn& e k
 ryd d l Z e j Z n Xd e j 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# 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 rte j)   n  d S(&   s   Tests for certbot.util.iN(   t   reload_module(   t   errorst   RunScriptTestc           B   se   e  Z d  Z e d    Z e j d  d    Z e j d  d    Z e j d  d    Z	 RS(   s"   Tests for certbot.util.run_script.c         C   s   d d l  m } | |  S(   Ni(   t
   run_script(   t   certbot.utilR   (   t   clst   paramsR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   _call   s    s   certbot.util.subprocess.Popenc         C   sW   d |   _  d |   j _ |  j d g  \ } } |  j | d  |  j | d  d S(   s.   These will be changed soon enough with reload.i    t   stdoutt   stderrt   testN(   s   stdouts   stderr(   t
   returncodet   communicatet   return_valueR   t   assertEqual(   t   selft
   mock_popent   outt   err(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_default   s
    c         C   s)   t  | _ |  j t j |  j d g  d  S(   NR
   (   t   OSErrort   side_effectt   assertRaisesR   t   SubprocessErrorR   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_bad_process"   s    	c         C   s;   d |   j  _ d |   _ |  j t j |  j d g  d  S(   Nt    i   R
   (   R   R   (   R   R   R   R   R   R   R   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_failure(   s    (
   t   __name__t
   __module__t   __doc__t   classmethodR   t   mockt   patchR   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s
   
t   ExeExistsTestc           B   s   e  Z d  Z e 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.util.exe_exists.c         C   s   d d l  m } | |  S(   Ni(   t
   exe_exists(   R   R"   (   R   t   exeR"   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   3   s    s   certbot.util.os.path.isfiles   certbot.util.os.accessc         C   s,   t  | _ t  | _ |  j |  j d   d  S(   Ns   /path/to/exe(   t   TrueR   t
   assertTrueR   (   R   t   mock_accesst   mock_isfile(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_full_path8   s    		c         C   s,   t  | _ t  | _ |  j |  j d   d  S(   NR#   (   R$   R   R%   R   (   R   R&   R'   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_on_path?   s    		c         C   s,   t  | _ t | _ |  j |  j d   d  S(   NR#   (   t   FalseR   R$   t   assertFalseR   (   R   R&   R'   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_not_foundF   s    		(
   R   R   R   R   R   R   R    R(   R)   R,   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR!   0   s   t   LockDirUntilExitc           B   sM   e  Z d  Z e d    Z d   Z e j d  e j d  d     Z RS(   s+   Tests for certbot.util.lock_dir_until_exit.c         O   s   d d l  m } | | |   S(   Ni(   t   lock_dir_until_exit(   R   R.   (   R   t   argst   kwargsR.   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   P   s    c         C   s0   t  t |   j   d d  l } t | j  d  S(   Ni(   t   superR-   t   setUpR   R    t   util(   R   t   certbot(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2   U   s    s   certbot.util.loggers   certbot.util.atexit_registerc         C   s   t  j j |  j d  } t  j |  |  j |  j  |  j |  |  j |  |  j | j d  | j d d } t	 j
 |  |   |  j | j j d  d  S(   Nt   subdiri   i    (   t   ost   patht   joint   tempdirt   mkdirR   R   t
   call_countt	   call_argst   shutilt   rmtreet   debug(   R   t   mock_registert   mock_loggerR5   t   registered_func(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_it[   s    (	   R   R   R   R   R   R2   R   R    RC   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR-   N   s
   	t   SetUpCoreDirTestc           B   sG   e  Z d  Z d   Z e j d  d    Z e j d  d    Z RS(   s/   Tests for certbot.util.make_or_verify_core_dir.c         O   s   d d l  m } | | |   S(   Ni(   t   set_up_core_dir(   R   RE   (   R   R/   R0   RE   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   p   s    s    certbot.util.lock_dir_until_exitc         C   sd   t  j j |  j d  } |  j | d t  j   t  |  j t  j j |   |  j	 | j
 d  d  S(   Nt   newi  i   (   R6   R7   R8   R9   R   t   geteuidR*   R%   t   existsR   R;   (   R   t	   mock_lockt   new_dir(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_successt   s    s   certbot.util.make_or_verify_dirc         C   s8   t  | _ |  j t j |  j |  j d t j   t	  d  S(   Ni  (
   R   R   R   R   t   ErrorR   R9   R6   RG   R*   (   R   t   mock_make_or_verify(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   {   s    	(   R   R   R   R   R   R    RK   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyRD   m   s   	t   MakeOrVerifyDirTestc           B   sD   e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   s   Tests for certbot.util.make_or_verify_dir.

    Note that it is not possible to test for a wrong directory owner,
    as this testing script would have to be run as root.

    c         C   sT   t  t |   j   t j j |  j d  |  _ t j |  j d  t j   |  _	 d  S(   Nt   fooi   (
   R1   RN   R2   R6   R7   R8   R9   R:   t   getuidt   uid(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2      s    c         C   s)   d d l  m } | | | |  j d t S(   Ni(   t   make_or_verify_dirt   strict(   R   RR   RQ   R$   (   R   t	   directoryt   modeRR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s    c         C   sj   t  j j |  j d  } |  j | d  |  j t  j j |   |  j t j	 t  j |  j
  d  d  S(   Nt   bari  (   R6   R7   R8   R9   R   R%   t   isdirR   t   statt   S_IMODEt   st_mode(   R   R7   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_creates_dir_when_missing   s    c         C   s?   |  j  |  j d  |  j t j t j |  j  j  d  d  S(   Ni   (   R   R7   R   RX   RY   R6   RZ   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt(   test_existing_correct_mode_does_not_fail   s    c         C   s#   |  j  t j |  j |  j d  d  S(   Ni  (   R   R   RL   R   R7   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_existing_wrong_mode_fails   s    c      	   C   sG   t  j j t d  , } t   | _ |  j t |  j d d  Wd  QXd  S(   Nt   makedirsRV   i޻ (   R   R    t   objectR6   R   R   R   R   (   R   R^   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_reraises_os_error   s    (	   R   R   R   R2   R   R[   R\   R]   R`   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyRN      s   					t   CheckPermissionsTestc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   s   Tests for certbot.util.check_permissions.

    Note that it is not possible to test for a wrong file owner,
    as this testing script would have to be run as root.

    c         C   s&   t  t |   j   t j   |  _ d  S(   N(   R1   Ra   R2   R6   RP   RQ   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2      s    c         C   s&   d d l  m } | |  j | |  j  S(   Ni(   t   check_permissions(   R   Rb   R9   RQ   (   R   RU   Rb   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s    c         C   s-   t  j |  j d  |  j |  j d   d  S(   Ni  (   R6   t   chmodR9   R%   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_ok_mode   s    c         C   s-   t  j |  j d  |  j |  j d   d  S(   Ni   i  (   R6   Rc   R9   R+   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_wrong_mode   s    (   R   R   R   R2   R   Rd   Re   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyRa      s
   			t   UniqueFileTestc           B   s>   e  Z d  Z d   Z d d  Z d   Z d   Z d   Z RS(   s#   Tests for certbot.util.unique_file.c         C   s2   t  t |   j   t j j |  j d  |  _ d  S(   Ns   foo.txt(   R1   Rf   R2   R6   R7   R8   R9   t   default_name(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2      s    i  c         C   s    d d l  m } | |  j |  S(   Ni(   t   unique_file(   R   Rh   Rg   (   R   RU   Rh   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s    c         C   sI   |  j    \ } } | j d  | j   |  j t |  j   d  d  S(   NRV   (   R   t   writet   closeR   t   opent   read(   R   t   fdt   name(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_returns_fd_for_writing   s    
c         C   s^   |  j  d t j |  j d  d  j d @ |  j  d t j |  j d  d  j d @ d  S(   Ni  i   i  i@   (   R   R6   RX   R   RZ   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_right_mode   s    -c         C   s9  |  j    d } |  j    d } |  j    d } |  j | |  |  j | |  |  j | |  |  j t j j |  |  j  |  j t j j |  |  j  |  j t j j |  |  j  t j j |  } |  j | j	 d   t j j |  } |  j | j	 d   t j j |  } |  j | j	 d   d  S(   Ni   s   foo.txt(
   R   t   assertNotEqualR   R6   R7   t   dirnameR9   t   basenameR%   t   endswith(   R   t   name1t   name2t   name3t	   basename1t	   basename2t	   basename3(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_default_exists   s    (   R   R   R   R2   R   Ro   Rp   R{   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyRf      s   			t   UniqueLineageNameTestc           B   s\   e  Z d  Z d d  Z d   Z d   Z e j d  d    Z e j d  d    Z	 RS(   s+   Tests for certbot.util.unique_lineage_name.i  c         C   s#   d d l  m } | |  j | |  S(   Ni(   t   unique_lineage_name(   R   R}   R9   (   R   t   filenameRU   R}   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s    c         C   sQ   |  j  d  \ } } |  j t | t   |  j t j j |  j d  |  d  S(   Nt   wows   wow.conf(	   R   R%   t
   isinstancet	   file_typeR   R6   R7   R8   R9   (   R   t   fR7   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt
   test_basic   s    c         C   sx   x/ t  j j d  D] } |  j d  \ } } q W|  j t | t   |  j t | t  j   |  j d | k  d  S(   Ni
   R   s   wow-0009.conf(   t   sixt   movest   rangeR   R%   R   R   t   string_types(   R   t   _R   Rn   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_multiple  s
    s   certbot.util.os.fdopenc         C   s;   t  d  } t j | _ | | _ |  j t  |  j d  d  S(   Nt   whoopsR   (   R   t   errnot   EIOR   R   R   (   R   t   mock_fdopenR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s    	c         C   sH   |  j  d  t d  } t j | _ | | _ |  j t |  j  d  d  S(   NR   R   (   R   R   R   R   R   R   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_subsequent_failure  s
    	(
   R   R   R   R   R   R   R   R    R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR|      s   		t   SafelyRemoveTestc           B   sJ   e  Z d  Z d   Z d   Z d   Z d   Z e j d  d    Z	 RS(   s%   Tests for certbot.util.safely_remove.c         C   s2   t  t |   j   t j j |  j d  |  _ d  S(   NRO   (   R1   R   R2   R6   R7   R8   R9   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2     s    c         C   s   d d l  m } | |  j  S(   Ni(   t   safely_remove(   R   R   R7   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR      s    c         C   sC   t  |  j d   Wd  QX|  j   |  j t j j |  j   d  S(   Nt   w(   Rk   R7   R   R+   R6   RH   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_exists$  s    
c         C   s*   |  j    |  j t j j |  j   d  S(   N(   R   R+   R6   R7   RH   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_missing*  s    
s   certbot.util.os.removec         C   s    t  | _ |  j t  |  j  d  S(   N(   R   R   R   R   (   R   t   mock_remove(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_other_error_passthrough/  s    	(
   R   R   R   R2   R   R   R   R   R    R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s   				t   SafeEmailTestc           B   s/   e  Z d  Z e d    Z d   Z d   Z RS(   s   Test safe_email.c         C   s   d d l  m } | |  S(   Ni(   t
   safe_email(   R   R   (   R   t   addrR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   7  s    c         C   sA   d d d g } x+ | D]# } |  j  |  j |  d |  q Wd  S(   Ns   certbot@certbot.orgs   tbd.ade@gmail.coms   abc_def.jdk@hotmail.museums
   %s failed.(   R%   R   (   R   t   addrsR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_valid_emails<  s
    	c         C   sA   d d d g } x+ | D]# } |  j  |  j |  d |  q Wd  S(   Ns   certbot@certbot..orgs   .tbd.ade@gmail.coms   ~/abc_def.jdk@hotmail.museums
   %s failed.(   R+   R   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_invalid_emailsE  s
    	(   R   R   R   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   5  s   		t   AddDeprecatedArgumentTestc           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(
   s   Test add_deprecated_argument.c         C   s   t  j   |  _ d  S(   N(   t   argparset   ArgumentParsert   parser(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2   Q  s    c         C   s*   d d l  m } | |  j j | |  d  S(   Ni(   t   add_deprecated_argument(   R   R   R   t   add_argument(   R   t   argument_namet   nargsR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   T  s    c         C   s9   |  j  d d  |  j d g  } |  j d | k  d  S(   Ns   --old-optioni    s   --old-option is deprecated(   R   t   _get_argparse_warningsR%   (   R   R	   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_warning_no_argY  s    c         C   s<   |  j  d d  |  j d d g  } |  j d | k  d  S(   Ns   --old-optioni   t   42s   --old-option is deprecated(   R   R   R%   (   R   R	   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_warning_with_arg^  s    c         C   sB   t  j   } t j d d |  |  j j |  Wd  QX| j   S(   Ns   certbot.util.sys.stderrRF   (   R   t   StringIOR   R    R   t
   parse_argst   getvalue(   R   R/   R	   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   c  s    c      	   C   s   |  j  d d  t j   } t j d d | 0 y |  j j d g  Wn t k
 r\ n XWd  QX|  j d | j	   k  d  S(   Ns   --old-optioni   s   certbot.util.sys.stdoutRF   s   -h(
   R   R   R   R   R    R   R   t
   SystemExitR%   R   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt	   test_helpi  s    
c         C   s   |  j  t  d S(   s   Test when ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a set.

        This variable is a set in configargparse versions < 0.12.0.

        N(   t   _test_constant_commont   set(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_set_constants  s    c         C   s   |  j  t  d S(   s   Test when ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a tuple.

        This variable is a tuple in configargparse versions >= 0.12.0.

        N(   R   t   tuple(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_tuple_constant{  s    c         C   sa   t  j d  3 } |   | _ |  j d d  |  j d d  Wd  QX|  j t | j  d  d  S(   Ns   certbot.util.configargparses   --old-optioni   s   --old-option2i   (   R   R    t#   ACTION_TYPES_THAT_DONT_NEED_A_VALUER   R   t   len(   R   t   typt   mock_configargparse(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s    (   R   R   R   R2   R   R   R   R   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   O  s   						
		t   EnforceLeValidityc           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(
   s   Test enforce_le_validity.c         C   s   d d l  m } | |  S(   Ni(   t   enforce_le_validity(   R   R   (   R   t   domainR   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s    c         C   s   |  j  t j |  j d  d  S(   Nu   ..(   R   R   t   ConfigurationErrorR   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_sanity  s    c         C   s   |  j  t j |  j d  d  S(   Nu   hello_world.example.com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_invalid_chars  s    c         C   s   |  j  t j |  j d  d  S(   Nu   -a.example.com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_leading_hyphen  s    c         C   s   |  j  t j |  j d  d  S(   Nu   a-.example.com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_trailing_hyphen  s    c         C   s   |  j  t j |  j d  d  S(   Nu   com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_one_label  s    c         C   s   |  j  |  j d  d  d  S(   Nu   example.com(   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_valid_domain  s    c         C   s6   |  j  t j |  j d  |  j  t j |  j d  d  S(   Nu   http://example.comu   https://example.com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_input_with_scheme  s    c         C   s   |  j  |  j d  d  d  S(   Nu   http.example.com(   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt!   test_valid_input_with_scheme_name  s    (   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s   								t   EnforceDomainSanityTestc           B   sz   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 RS(   s   Test enforce_domain_sanity.c         C   s   d d l  m } | |  S(   Ni(   t   enforce_domain_sanity(   R   R   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s    c         C   s&   |  j  t j |  j d j d   d  S(   Nu   eichhörnchen.example.coms   utf-8(   R   R   R   R   t   encode(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_nonascii_str  s    c         C   s   |  j  t j |  j d  d  S(   Nu   eichhörnchen.example.com(   R   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_nonascii_unicode  s    c         C   s'   d d } |  j  t j |  j |  d  S(   Nu   ai   (   R   R   R   R   (   R   t   long_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_too_long  s    
c         C   s9   d j  d d d d d d d d  } |  j |  d  S(   Nu   {0}.{1}.{2}.{3}t   ai?   t   bt   ct   d(   t   formatR   (   R   t   not_too_long_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_not_too_long  s    (c         C   s#   d } |  j  t j |  j |  d  S(   Nu   fizz..example.com(   R   R   R   R   (   R   t   empty_label_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_empty_label  s    c         C   s#   d } |  j  t j |  j |  d  S(   Nu   example.com..(   R   R   R   R   (   R   t   empty_trailing_label_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_empty_trailing_label  s    c         C   s'   d d } |  j  t j |  j |  d  S(   Nu   ai@   (   R   R   R   R   (   R   t   long_label_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_long_label_1  s    
c         C   s7   d j  d d d d  } |  j t j |  j |  d  S(   Nu   {0}.{1}.comu   ai@   u   bi?   (   R   R   R   R   R   (   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_long_label_2  s    c         C   s+   d j  d d d d  } |  j |  d  S(   Nu   {0}.{1}.comu   ai?   u   b(   R   R   (   R   t   not_too_long_label_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_not_long_label  s    c         C   s#   d } |  j  t j |  j |  d  S(   Nu    (   R   R   R   R   (   R   t   empty_domain(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_empty_domain  s    c         C   s   |  j  d  d  S(   Ns   this.is.xn--ls8h.tld(   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_punycode_ok  s    (   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s   											t   IsWildcardDomainTestc           B   s2   e  Z d  Z d   Z d   Z d   Z d   Z RS(   s   Tests for is_wildcard_domain.c         C   s   d |  _  d |  _ d  S(   Nu   *.example.orgu   example.org(   t   wildcardt   no_wildcard(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2     s    	c         C   s   d d l  m } | |  S(   Ni(   t   is_wildcard_domain(   R   R   (   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s    c         C   s<   |  j  |  j |  j   |  j  |  j |  j j     d  S(   N(   R+   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_no_wildcard  s    c         C   s<   |  j  |  j |  j   |  j  |  j |  j j     d  S(   N(   R%   R   R   R   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_wildcard  s    (   R   R   R   R2   R   R   R   (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s
   			t
   OsInfoTestc           B   s8   e  Z d  Z d   Z d   Z e j d  d    Z RS(   s    Test OS / distribution detectionc      	   C   s   d d l  m } m } m } t j d d t  |  j | t j	 d   d d  |  j | t j	 d   d d	  |  j | d
  d  |  j | t j	 d   d  Wd  QXt j d d t
  |  j |   d  Wd  QXd  S(   Ni(   t   get_os_infot   get_systemd_os_infot   get_os_info_uas   os.path.isfileR   s
   os-releasei    t	   systemdosi   R   s	   /dev/nullR   t	   SystemdOS(   R   R   (   R   R   (   R   R   R   R   R   R    R$   R   t	   test_utilt   vector_pathR*   (   R   R   R   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_systemd_os_release  s    			c         C   sn   d d l  m } t j d d t C | t j d   } |  j t |  d  |  j	 d | k  Wd  QXd  S(   Ni(   t   get_systemd_os_likes   os.path.isfileR   s
   os-releasei   t   debian(
   R   R   R   R    R$   R   R   R   R   R%   (   R   R   t   id_likes(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_systemd_os_release_like  s    	s   certbot.util.subprocess.Popenc         C   s  d d l  m } m } m } t j d d t t j d d d ; |  j |   d d	  |  j |   d
 j |     Wd  QXt j d d d b t j	   } i d d 6} | j
 |   | | _ |  j |   d d  |  j |   d d  Wd  QXt j d d d c t j d d d   |  j |   d!  Wd  QXt j d d d"  |  j |   d#  Wd  QXWd  QXt j d d d$  |  j |   d%  Wd  QXt j d d d& 4 t j d d d'  |  j |   d(  Wd  QXWd  QXWd  QXd  S()   Ni(   R   t   get_python_os_infoR   s   os.path.isfileR   s   platform.system_aliast
   NonSystemDR   i    t
   nonsystemdt    t   darwinR   s   42.42.42t   errors   communicate.return_valuei   t   linuxs   platform.linux_distributiont   testdistt   freebsds
   9.3-RC3-p1t   9t   windowss   platform.win32_vert   4242t   95t   2(   R   s   42s   42(   s   darwinR   R   (   s   42.42.42s   error(   s   linuxR   R   (   R   R   R   (   s   linuxR   (   R   s   42R   (   R   s   42(   R   s
   9.3-RC3-p1R   (   R   R   (   R   R   R   (   R   R   R   R   (   R   R   (   R   R   R   R   R   R    R*   R   R8   t   Mockt   configure_mockR   (   R   t
   popen_mockR   R   R   t	   comm_mockt
   comm_attrs(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_non_systemd_os_info  sB    


	





(   R   R   R   R   R   R   R    R  (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR     s   			t   AtexitRegisterTestc           B   sA   e  Z d  Z d   Z e d    Z d   Z d   Z d   Z RS(   s'   Tests for certbot.util.atexit_register.c         C   s,   t  j   |  _ d |  _ i d d 6|  _ d  S(   Nt   hii*   t   answer(   s   hi(   R   t	   MagicMockt   funcR/   R0   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR2   G  s    	c         O   s   d d l  m } | | |   S(   Ni(   t   atexit_register(   R   R  (   R   R/   R0   R  (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR   L  s    c         C   s0   |  j  t j    |  j j |  j |  j   d  S(   N(   t   _test_commonR6   t   getpidR  t   assert_called_withR/   R0   (   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_calledQ  s    c         C   s'   |  j  d d  |  j |  j j  d  S(   Nt   initial_pidi(   R	  R+   R  t   called(   R   (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   test_not_calledU  s    c         C   s   t  j d |  y t  j d  # } |  j |  j |  j |  j  Wd  QX|  j | j j  | j j	 \ } } | d } | | d |   Wd  QXd  S(   Ns   certbot.util._INITIAL_PIDs   certbot.util.atexiti    i   (
   R   R    R   R  R/   R0   R%   t   registerR  R<   (   R   R  t   mock_atexitR/   R0   t   atexit_func(    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR	  Y  s    "
(	   R   R   R   R2   R   R   R  R  R	  (    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyR  E  s   			t   __main__(*   R   R   R   R6   R=   RX   t   unittestR   R   t	   six.movesR    R4   R   t   certbot.tests.utilt   testsR3   R   t   TestCaseR   R!   t   TempDirTestCaseR-   RD   RN   Ra   Rf   t   fileR   t	   NameErrort   iot   TextIOWrapperR|   R   R   R   R   R   R   R   R  R   t   main(    (    (    s;   /usr/lib/python2.7/dist-packages/certbot/tests/util_test.pyt   <module>   sD   '+
#=#;G 