ó
~9Vc           @   sQ   d  Z  d d l Z d d l Z d d l m Z d e f d     YZ d   Z d S(   sı   
    flask.testsuite.appctx
    ~~~~~~~~~~~~~~~~~~~~~~

    Tests the application context.

    :copyright: (c) 2012 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
i˙˙˙˙N(   t   FlaskTestCaset   AppContextTestCasec           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   sw   t  j t  } d | j d <d | j d <| j d  d    } | j   $ t  j d  } |  j | d  Wd  QXd  S(	   Nt	   localhostt   SERVER_NAMEt   httpst   PREFERRED_URL_SCHEMEt   /c           S   s   d  S(   N(    (    (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   index   s    R   s   https://localhost/(   t   flaskt   Flaskt   __name__t   configt   routet   app_contextt   url_fort   assert_equal(   t   selft   appR   t   rv(    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   test_basic_url_generation   s    c      
   C   sI   t  j t  } | j   ( |  j t   t  j d  Wd  QXWd  QXd  S(   NR   (   R   R	   R
   R   t   assert_raisest   RuntimeErrorR   (   R   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt(   test_url_generation_requires_server_name    s    c         C   s'   |  j  t   t j d  Wd  QXd  S(   NR   (   R   R   R   R   (   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt)   test_url_generation_without_context_fails&   s    c         C   sU   t  j t  } | j    |  j t  j j   |  Wd  QX|  j t  j j d   d  S(   N(
   R   R	   R
   t   test_request_contextR   t   current_appt   _get_current_objectt   _app_ctx_stackt   topt   None(   R   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt&   test_request_context_means_app_context*   s    c         C   sU   t  j t  } | j    |  j t  j j   |  Wd  QX|  j t  j j d   d  S(   N(
   R   R	   R
   R   R   R   R   R   R   R   (   R   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt%   test_app_context_provides_current_app0   s    c            sW   g    t  j t  } | j   f d    } | j    Wd  QX|  j   d  g  d  S(   Nc            s     j  |   d  S(   N(   t   append(   t	   exception(   t   cleanup_stuff(    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   cleanup9   s    (   R   R	   R
   t   teardown_appcontextR   R   R   (   R   R   R#   (    (   R"   s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   test_app_tearing_down6   s    c         C   s^   d t  f d     Y} t j t  } | | _ | j    |  j t j d  d  Wd  QXd  S(   Nt   CustomRequestGlobalsc           B   s   e  Z d    Z RS(   c         S   s   d |  _  d  S(   Nt   eggs(   t   spam(   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   __init__D   s    (   R
   t
   __module__R)   (    (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyR&   C   s   s   {{ g.spam }}R'   (   t   objectR   R	   R
   t   app_ctx_globals_classR   R   t   render_template_string(   R   R&   R   (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt!   test_custom_app_ctx_globals_classB   s    	c            s   g    t  j t  } | j d    f d   } | j d    f d   } | j d   f d    } | j   } | j d   j	   d d g  d  S(   Nc            s     j  d  d  S(   Nt   request(   R    (   t   error(   t   called(    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   teardown_reqO   s    c            s     j  d  d  S(   NR   (   R    (   R0   (   R1   (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   teardown_appR   s    R   c        	      sM   t  j j  t  j j  Wd  QXWd  QX  j t  j j j j d d  k	  d S(   Ns   werkzeug.requestu    (   R   R   R   t   _request_ctx_stackt   assert_trueR/   t   environR   (    (   R   (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyR   U   s    R/   R   (
   R   R	   R
   t   teardown_requestR   R$   R   t   test_clientt   gett   assertEqual(   R   R   R2   R3   R   t   c(    (   R1   R   s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   test_context_refcountsL   s    (
   R
   R*   R   R   R   R   R   R%   R.   R<   (    (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyR      s   							
c          C   s&   t  j   }  |  j t  j t   |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   (   t   suite(    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyRA   b   s    (   t   __doc__R   R=   t   flask.testsuiteR    R   RA   (    (    (    s5   /tmp/pip-build-zHWFj_/Flask/flask/testsuite/appctx.pyt   <module>
   s
   Q