ó
`¾Tc           @   sw   d  Z  d d l Z d d l Z d d l m Z d d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 „  Z	 d S(
   s²   
    flask.testsuite.testing
    ~~~~~~~~~~~~~~~~~~~~~~~

    Test client and more.

    :copyright: (c) 2011 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   FlaskTestCase(   t	   text_typet   TestToolsTestCasec           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z RS(
   c         C   s§   t  j t ƒ } t | _ d | j d <d | j d <| j d ƒ d „  ƒ } | j ƒ  } |  j | j	 j
 d ƒ | j ƒ  ) } | j d ƒ } |  j | j d ƒ Wd  QXd  S(   Ns   example.com:1234t   SERVER_NAMEs   /foot   APPLICATION_ROOTt   /c           S   s
   t  j j S(   N(   t   flaskt   requestt   url(    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   index   s    s   http://example.com:1234/foo/(   R   t   Flaskt   __name__t   Truet   testingt   configt   routet   test_request_contextt   assert_equalR   R   t   test_clientt   gett   data(   t   selft   appR	   t   ctxt   ct   rv(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt!   test_environ_defaults_from_config   s    	c         C   s   t  j t ƒ } t | _ | j d ƒ d „  ƒ } | j ƒ  } |  j | j j	 d ƒ | j
 ƒ  ) } | j d ƒ } |  j | j d ƒ Wd  QXd  S(   NR   c           S   s
   t  j j S(   N(   R   R   R   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyR	   &   s    s   http://localhost/(   R   R
   R   R   R   R   R   R   R   R   R   R   R   (   R   R   R	   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_environ_defaults#   s    	c      
   C   sW  t  j t ƒ } d | _ | j d d d d g ƒd „  ƒ } | j d ƒ d „  ƒ } | j ƒ  ñ } | j d ƒ } | j d	 k s‡ t ‚ | j d ƒ } | j d
 k s« t ‚ t  j	 j d ƒ d k sÉ t ‚ | j
 d d i  d t ƒ} | j d k sù t ‚ t | d ƒ s)t  j	 j d ƒ d k s)t ‚ n  | j d ƒ } | j d k sMt ‚ Wd  QXd  S(   NR   R   t   methodst   GETt   POSTc           S   s0   t  j j d k r t  j d ƒ Sd t  j d <d S(   NR   s   /getsessiont   fooR   R	   (   R   R   t   methodt   redirectt   session(    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyR	   4   s    s   /getsessionc           S   s   t  j j d d ƒ S(   NR   s	   <missing>(   R   R"   R   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   get_session;   s    s	   <missing>R	   R   R   t   follow_redirectst   redirect_client(   R   R
   R   t
   secret_keyR   R   R   R   t   AssertionErrorR"   t   postR   t   hasattr(   R   R   R	   R#   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_redirect_keep_session0   s     	$!c         C   s  t  j t ƒ } t | _ d | _ | j d ƒ d „  ƒ } | j ƒ  ¹ } | j ƒ  @ } |  j	 t
 | ƒ d ƒ d g | d <|  j	 t
 | ƒ d ƒ Wd  QX| j d ƒ } |  j	 | j d ƒ | j ƒ  4 } |  j	 t
 | ƒ d ƒ |  j	 | d d g ƒ Wd  QXWd  QXd  S(	   NR   R   c           S   s   t  t j d ƒ S(   NR   (   R   R   R"   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyR	   U   s    i    i*   R   i   s   [42](   R   R
   R   R   R   R&   R   R   t   session_transactionR   t   lenR   R   (   R   R   R	   R   t   sessR   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_session_transactionsP   s    		c      	   C   sƒ   t  j t ƒ } t | _ | j ƒ  Y } y | j ƒ   } Wd  QXWn) t k
 rk } |  j d t	 | ƒ ƒ n X|  j
 d ƒ Wd  QXd  S(   Ns&   Session backend did not open a sessions   Expected runtime error(   R   R
   R   R   R   R   R+   t   RuntimeErrort	   assert_int   strt   fail(   R   R   R   R-   t   e(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt*   test_session_transactions_no_null_sessionsd   s    	
c         C   sš   t  j t ƒ } t | _ d | _ | j ƒ  g } | j d ƒ } t  j j	 ƒ  } |  j
 | d  k	 ƒ | j ƒ  ! |  j
 | t  j j	 ƒ  k ƒ Wd  QXWd  QXd  S(   NR   R   (   R   R
   R   R   R   R&   R   R   R   t   _get_current_objectt   assert_truet   NoneR+   (   R   R   R   R   t   req(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt&   test_session_transactions_keep_contextq   s    		c         C   s€   t  j t ƒ } t | _ | j d t ƒ } y | j ƒ   } Wd  QXWn) t k
 rn } |  j	 d t
 | ƒ ƒ n X|  j d ƒ d  S(   Nt   use_cookiest   cookiess   Expected runtime error(   R   R
   R   R   R   R   t   FalseR+   R/   R0   R1   R2   (   R   R   R   t   sR3   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt&   test_session_transaction_needs_cookies}   s    	
c         C   s1  t  j t ƒ } | j d ƒ d „  ƒ } | j d ƒ d „  ƒ } | j ƒ  ¬ } | j d ƒ } |  j t  j j d ƒ |  j | j	 d ƒ |  j | j
 d ƒ | j d ƒ } |  j t t  j d ƒ ƒ |  j d	 | j	 ƒ |  j | j
 d
 ƒ d t  j _ Wd  QXy t  j j Wn t t f k
 r n Xt d ƒ ‚ d  S(   NR   c           S   s   d t  j _ d S(   Ni*   s   Hello World!(   R   t   gt   value(    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyR	   ‹   s    s   /otherc           S   s   d d d  S(   Ni   i    (    (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   other   s    i*   s   Hello World!iÈ   R@   s   Internal Server Erroriô  i   s   some kind of exception expected(   R   R
   R   R   R   R   R   R?   R@   R   t   status_codet   assert_falseR)   R0   t   AttributeErrorR/   R'   (   R   R   R	   RA   R   t   resp(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt    test_test_client_context_binding‰   s$    c         C   sq   t  j t ƒ } | j ƒ  } | ! |  j | j d ƒ j d ƒ Wd  QX| ! |  j | j d ƒ j d ƒ Wd  QXd  S(   NR   i”  (   R   R
   R   R   R   R   RB   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_reuse_client§   s    "c            s  t  j t ƒ } g  ‰  | j ‡  f d †  ƒ } | j ƒ  4 } |  j ˆ  g  ƒ | j d ƒ |  j ˆ  g  ƒ Wd  QX|  j ˆ  d  g ƒ ˆ  2| j ƒ  T } |  j ˆ  g  ƒ | j d ƒ |  j ˆ  g  ƒ | j d ƒ |  j ˆ  d  g ƒ Wd  QX|  j ˆ  d  d  g ƒ d  S(   Nc            s   ˆ  j  |  ƒ d  S(   N(   t   append(   t   error(   t   called(    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   remember´   s    R   (   R   R
   R   t   teardown_requestR   R   R   R7   (   R   R   RK   R   (    (   RJ   s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt(   test_test_client_calls_teardown_handlers±   s     (   R   t
   __module__R   R   R*   R.   R4   R9   R>   RF   RG   RM   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyR      s   			 						
t   SubdomainTestCasec           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   sW   t  j t ƒ |  _ d |  j j d <|  j j ƒ  |  _ |  j j ƒ  |  _ |  j j	 ƒ  d  S(   Ns   example.comR   (
   R   R
   R   R   R   R   t   clientR   t   _ctxt   push(   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   setUpÊ   s
    c         C   s#   |  j  d  k	 r |  j  j ƒ  n  d  S(   N(   RQ   R7   t   pop(   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   tearDownÒ   s    c         C   sr   |  j  j d d d ƒd „  ƒ } t j d d d ƒ} |  j j | ƒ } |  j d | j ƒ |  j d | j ƒ d  S(	   NR   t	   subdomains   <company_id>c         S   s   |  S(   N(    (   t
   company_id(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   view×   s    RX   RW   t   xxxiÈ   (	   R   R   R   t   url_forRP   R   R   RB   R   (   R   RX   R   t   response(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_subdomainÖ   s
    !c         C   sl   |  j  j d ƒ d „  ƒ } t j d d d ƒ} |  j j | ƒ } |  j d | j ƒ |  j d | j ƒ d  S(   Ns   /<company_id>c         S   s   |  S(   N(    (   RW   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyRX   ã   s    RX   RW   RY   iÈ   (	   R   R   R   RZ   RP   R   R   RB   R   (   R   RX   R   R[   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   test_nosubdomainâ   s
    (   R   RN   RS   RU   R\   R]   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyRO   È   s   			c          C   s<   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   RO   (   t   suite(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyRb   î   s    (
   t   __doc__R   R^   t   flask.testsuiteR    t   flask._compatR   R   RO   Rb   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/testing.pyt   <module>
   s   ¶&