ó
Y[c           @   s›   d  Z  d d l Z d d l Z d d l Z d d l m Z d d l j j Z	 d e	 j
 f d „  ƒ  YZ d e j f d „  ƒ  YZ e d k r— e j ƒ  n  d S(	   s   Tests for certbot.eff.iÿÿÿÿN(   t	   constantst   HandleSubscriptionTestc           B   sã   e  Z d  Z d „  Z d „  Z e j ƒ  e j d ƒ d „  ƒ ƒ Z	 e j d ƒ d „  ƒ Z
 e j ƒ  e j d ƒ d „  ƒ ƒ Z d „  Z e j ƒ  e j d ƒ d „  ƒ ƒ Z d	 „  Z e j ƒ  e j d ƒ d
 „  ƒ ƒ Z d „  Z RS(   s*   Tests for certbot.eff.handle_subscription.c         C   s;   t  t |  ƒ j ƒ  d |  _ |  j |  j _ d  |  j _ d  S(   Ns   certbot@example.org(   t   superR   t   setUpt   emailt   configt   Nonet	   eff_email(   t   self(    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR      s    	c         C   s   d d l  m } | |  j ƒ S(   Niÿÿÿÿ(   t   handle_subscription(   t   certbot.effR	   R   (   R   R	   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   _call   s    s   certbot.eff.subscribec         C   s|   d  |  j _ t |  j _ |  j ƒ  |  j | j ƒ |  j | ƒ  j j ƒ | ƒ  j	 j
 d d } d } |  j | | k ƒ d  S(   Ni    s,   because you didn't provide an e-mail address(   R   R   R   t   TrueR   R   t   assertFalset   calledt   yesnot   add_messaget	   call_argst
   assertTrue(   R   t   mock_subscribet   mock_get_utilityt   actualt   expected_part(    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_failure   s    
c         C   sL   t  |  j _ t j ƒ   } |  j ƒ  Wd  QX|  j | j ƒ |  j | ƒ d  S(   N(	   t   FalseR   R   t	   test_utilt   patch_get_utilityR   R   R   t   _assert_no_get_utility_calls(   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt    test_no_subscribe_with_no_prompt#   s
    c         C   s4   t  |  j _ |  j ƒ  |  j | ƒ |  j | ƒ d  S(   N(   R   R   R   R   t   _assert_subscribedR   (   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_subscribe_with_no_prompt+   s    
c         C   s0   |  j  | ƒ  j j ƒ |  j  | ƒ  j j ƒ d  S(   N(   R   R   R   R   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR   3   s    c         C   sM   t  | ƒ  j _ |  j ƒ  |  j | ƒ |  j | ƒ  j j ƒ |  j | ƒ d  S(   N(	   R   R   t   return_valueR   R   R   R   R   t   _assert_correct_yesno_call(   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_subscribe_with_prompt7   s
    
c         C   s2   |  j  | j ƒ |  j | j d d |  j ƒ d  S(   Ni    (   R   R   t   assertEqualR   R   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR   @   s    c         C   sP   t  | ƒ  j _ |  j ƒ  |  j | j ƒ |  j | ƒ  j j ƒ |  j | ƒ d  S(   N(   R   R   R   R   R   R   R   R    (   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_no_subscribe_with_promptD   s
    
c         C   sk   |  j  | ƒ  j j ƒ | ƒ  j j \ } } | d } d } |  j  | | k ƒ |  j | j d t ƒ ƒ d  S(   Ni    s   Electronic Frontier Foundationt   default(   R   R   R   R   R   t   getR   (   R   R   R   t   call_kwargsR   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR    M   s    
(   t   __name__t
   __module__t   __doc__R   R   R   R   t   mockt   patchR   R   R   R   R!   R   R#   R    (    (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR      s   								t   SubscribeTestc           B   sª   e  Z d  Z d „  Z e j d ƒ d „  ƒ Z d „  Z e j	 ƒ  d „  ƒ Z
 e j	 ƒ  d „  ƒ Z e j	 ƒ  d „  ƒ Z e j	 ƒ  d „  ƒ Z d	 „  Z e j	 ƒ  d
 „  ƒ Z RS(   s    Tests for certbot.eff.subscribe.c         C   sD   d |  _  i t d 6|  _ t j d t ƒ |  _ |  j |  j j _ d  S(   Ns   certbot@example.orgt   statust   ok(   R   R   t   jsonR*   t   Mockt   responseR   (   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR   X   s    	s   certbot.eff.requests.postc         C   s:   |  j  | _ d d l m } | |  j ƒ |  j | ƒ d  S(   Niÿÿÿÿ(   t	   subscribe(   R1   R   R
   R2   R   t   _check_post_call(   R   t	   mock_postR2   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR   ^   s    c         C   s{   |  j  | j d ƒ | j \ } } |  j  | d t j ƒ | j d ƒ } |  j | d  k ƒ |  j  | j d ƒ |  j ƒ d  S(   Ni   i    t   dataR   (	   R"   t
   call_countR   R    t   EFF_SUBSCRIBE_URIR%   R   R   R   (   R   R4   R   R&   R5   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR3   f   s    c         C   sC   t  |  j d <|  j ƒ  |  j | ƒ } d } |  j | | k ƒ d  S(   NR-   s2   because your e-mail address appears to be invalid.(   R   R/   R   t   _get_reported_messageR   (   R   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_bad_statuso   s
    
c         C   sW   t  |  j _ t j j |  j j _ |  j ƒ  |  j	 | ƒ } d } |  j
 | | k ƒ d  S(   Nt   because(   R   R1   R.   t   requestst
   exceptionst	   HTTPErrort   raise_for_statust   side_effectR   R8   R   (   R   R   R   t   unexpected_part(    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_not_okw   s    
c         C   sH   t  ƒ  |  j j _ |  j ƒ  |  j | ƒ } d } |  j | | k ƒ d  S(   Nt   problem(   t
   ValueErrorR1   R/   R?   R   R8   R   (   R   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_response_not_json€   s
    
c         C   sC   |  j  j ƒ  |  j ƒ  |  j | ƒ } d } |  j | | k ƒ d  S(   NRB   (   R/   t   clearR   R8   R   (   R   R   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt)   test_response_json_missing_status_elementˆ   s
    
c         C   s+   |  j  | ƒ  j j ƒ | ƒ  j j d d S(   Ni    (   R   R   R   R   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR8      s    c         C   s   |  j  ƒ  |  j | j ƒ d  S(   N(   R   R   R   (   R   R   (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   test_subscribe”   s    
(   R'   R(   R)   R   R*   R+   R   R3   R   R   R9   RA   RD   RF   R8   RG   (    (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyR,   V   s   					t   __main__(   R)   R;   t   unittestR*   t   certbotR    t   certbot.tests.utilt   testst   utilR   t   ConfigTestCaseR   t   TestCaseR,   R'   t   main(    (    (    s:   /usr/lib/python2.7/dist-packages/certbot/tests/eff_test.pyt   <module>   s   KD