ó
`¾Tc           @   s   d  Z  d d l Z d d l Z y d d l m Z Wn e k
 rK d Z n Xd d l m Z d e f d „  ƒ  YZ d „  Z	 d S(   sµ   
    flask.testsuite.reqctx
    ~~~~~~~~~~~~~~~~~~~~~~

    Tests the request context.

    :copyright: (c) 2012 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   greenlet(   t   FlaskTestCaset   RequestContextTestCasec           B   sb   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e	 d k r` d Z d Z n  RS(   c            st   g  ‰  t  j t ƒ } | j ‡  f d †  ƒ } | j ƒ  } | j ƒ  |  j ˆ  g  ƒ | j ƒ  |  j ˆ  d  g ƒ d  S(   Nc            s   ˆ  j  |  ƒ d  S(   N(   t   append(   t	   exception(   t   buffer(    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   end_of_request   s    (	   t   flaskt   Flaskt   __name__t   teardown_requestt   test_request_contextt   pusht   assert_equalt   popt   None(   t   selft   appR   t   ctx(    (   R   s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   test_teardown_on_pop   s    

c      
   C   s÷  t  j t ƒ } | j j d d ƒ | j d ƒ d „  ƒ } | j d d d ƒd „  ƒ } | j d ƒ $ |  j t  j d d	 t	 ƒd
 ƒ Wd  QX| j d ƒ $ |  j t  j d d	 t	 ƒd ƒ Wd  QXy' | j d d i d d 6ƒ Wd  QXWnG t
 k
 r2} |  j t | t ƒ ƒ |  j t | ƒ d d d ƒ n Xy: | j j d d ƒ | j d d i d d 6ƒ Wd  QXWn# t k
 r’} t d | ƒ ‚ n Xy: | j j d d ƒ | j d d i d d 6ƒ Wd  QXWn# t k
 rò} t d | ƒ ‚ n Xd  S(   Nt   SERVER_NAMEs   localhost.localdomain:5000t   /c           S   s   d  S(   N(   R   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   index*   s    t	   subdomaint   fooc           S   s   d  S(   N(   R   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   sub.   s    R   t	   _externals"   http://localhost.localdomain:5000/R   s&   http://foo.localhost.localdomain:5000/t   environ_overridest	   localhostt	   HTTP_HOSTs   the server name provided s2   ('localhost.localdomain:5000') does not match the s3   server name from the WSGI environment ('localhost')s4   No ValueError exception should have been raised "%s"s   localhost:80(   R   R   R	   t   configt   updatet   routeR   R   t   url_fort   Truet	   Exceptiont   assert_truet
   isinstancet
   ValueErrort   str(   R   R   R   R   t   e(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt    test_proper_test_request_context$   s>    %%


c         C   s®   t  j t ƒ } | j d ƒ d „  ƒ } | j d ƒ d „  ƒ } | j d ƒ  |  j | ƒ  d ƒ Wd  QX| j d ƒ  |  j | ƒ  d ƒ Wd  QX|  j t  j j d  k ƒ d  S(   NR   c           S   s   d t  j j d S(   Ns	   Hello %s!t   name(   R   t   requestt   args(    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR   U   s    s   /mehc           S   s
   t  j j S(   N(   R   R+   t   url(    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   mehX   s    s   /?name=Worlds   Hello World!s   http://localhost/meh(
   R   R   R	   R    R   R   R$   t   _request_ctx_stackt   topR   (   R   R   R   R.   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   test_context_bindingS   s    c         C   s   t  j t ƒ } |  j t  j ƒ |  j t  j ƒ  ƒ | j ƒ  } | j ƒ  z' |  j t  j ƒ |  j t  j ƒ  ƒ Wd  | j	 ƒ  Xd  S(   N(
   R   R   R	   t   assert_falseR+   t   has_request_contextR   R   R$   R   (   R   R   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   test_context_testb   s    
c         C   s   t  j t ƒ } | j d ƒ d „  ƒ } | j d ƒ } | j ƒ  |  j | ƒ  d ƒ | j ƒ  y | ƒ  Wn t k
 r{ n X|  j	 d d ƒ d  S(   NR   c           S   s   d t  j j d S(   Ns	   Hello %s!R*   (   R   R+   R,   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR   p   s    s   /?name=Worlds   Hello World!i    s   expected runtime error(
   R   R   R	   R    R   R   R   R   t   RuntimeErrorR$   (   R   R   R   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   test_manual_context_bindingn   s    

c            s…   t  j t ƒ ‰ g  ‰ ˆ j d ƒ ‡  ‡ ‡ f d †  ƒ } ˆ j ƒ  j d ƒ } ˆ  j | j d ƒ ˆ d j ƒ  } ˆ  j | d ƒ d  S(   NR   c             s>   t  j j j ƒ  ‰  ‡  ‡ ‡ f d †  }  ˆ j t |  ƒ ƒ d S(   Nc              s”   ˆ j  t j ƒ ˆ j  t j ƒ ˆ  X ˆ j t j ƒ ˆ j t j ˆ ƒ ˆ j t j j d ƒ ˆ j t j j d d ƒ Wd  QXˆ j  t j ƒ d S(   NR   R   t   bari*   (   R2   R   R+   t   current_appR$   R   t   pathR,   (    (   t   reqctxR   R   (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   g†   s     s   Hello World!(   R   R/   R0   t   copyR   R    (   R;   (   R   t	   greenletsR   (   R:   s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR   ƒ   s    
s	   /?foo=bars   Hello World!i    i*   (	   R   R   R	   R    t   test_clientt   getR   t   datat   run(   R   R   t   rvt   result(    (   R   R=   R   s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   test_greenlet_context_copying   s    $c            s…   t  j t ƒ ‰ g  ‰ ˆ j d ƒ ‡  ‡ ‡ f d †  ƒ } ˆ j ƒ  j d ƒ } ˆ  j | j d ƒ ˆ d j ƒ  } ˆ  j | d ƒ d  S(   NR   c             sD   t  j j j ƒ  }  t  j ‡  ‡ f d †  ƒ } ˆ j t | ƒ ƒ d S(   Nc              sW   ˆ  j  t j ƒ ˆ  j t j ˆ ƒ ˆ  j t j j d ƒ ˆ  j t j j d d ƒ d S(   NR   R   R7   i*   (   R$   R   R+   R   R8   R9   R,   (    (   R   R   (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR;       s
    s   Hello World!(   R   R/   R0   R<   t   copy_current_request_contextR   R    (   R:   R;   (   R   R=   R   (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR      s    s	   /?foo=bars   Hello World!i    i*   (	   R   R   R	   R    R>   R?   R   R@   RA   (   R   R   RB   RC   (    (   R   R=   R   s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt!   test_greenlet_context_copying_api™   s    $N(   R	   t
   __module__R   R)   R1   R4   R6   RD   RF   R    R   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyR      s   		/					c          C   s&   t  j ƒ  }  |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   (   t   suite(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyRL   ¶   s    (
   t   __doc__R   RH   R    t   ImportErrorR   t   flask.testsuiteR   R   RL   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/reqctx.pyt   <module>
   s   
¡