ó
`¾Tc           @   sÉ   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 m Z d d l	 m
 Z
 e j ƒ  Z d e f d „  ƒ  YZ d e
 f d „  ƒ  YZ d	 e
 f d
 „  ƒ  YZ d „  Z d S(   sµ   
    flask.testsuite.regression
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    Tests regressions.

    :copyright: (c) 2011 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   NotFound(   t   FlaskTestCaset   _NoLeakAsserterc           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   testcase(   t   selfR   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   __init__   s    c         C   sY   t  j ƒ  t j ƒ  t j j } d d d g | j d <t  j ƒ  t	 t  j
 ƒ  ƒ |  _ d  S(   Ni   i   i   t   FOOO(   t   gct   disablet   _gc_lockt   acquiret   flaskt   _request_ctx_stackt   _localt   __storage__t   collectt   lent   get_objectst   old_objects(   R   t   loc(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt	   __enter__   s    


c         C   sh   t  t d ƒ s t j ƒ  n  t t j ƒ  ƒ } | |  j k rP |  j j d ƒ n  t	 j
 ƒ  t j ƒ  d  S(   Nt   getrefcounts   Example code leaked(   t   hasattrt   sysR   R   R   R   R   R   t   failR	   t   releaset   enable(   R   t   exc_typet	   exc_valuet   tbt   new_objects(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   __exit__,   s    
(   t   __name__t
   __module__R   R   R   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyR      s   		t   MemoryTestCasec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s
   t  |  ƒ S(   N(   R   (   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   assert_no_leak8   s    c            s—   t  j t ƒ ‰ ˆ j d ƒ d „  ƒ } ‡  ‡ f d †  } | ƒ  t j d k r“ t t d ƒ r“ ˆ  j ƒ  # x t d ƒ D] } | ƒ  qy WWd  QXn  d  S(	   Nt   /c           S   s   t  j d d d ƒS(   Ns   simple_template.htmlt   whiskeyi*   (   R   t   render_template(    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   index=   s    c             sN   ˆ j  ƒ  < }  |  j d ƒ } ˆ  j | j d ƒ ˆ  j | j d ƒ Wd  QXd  S(   NR$   iÈ   s   <h1>42</h1>(   t   test_clientt   gett   assert_equalt   status_codet   data(   t   ct   rv(   R   t   app(    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   fireA   s    i   i   t   pypy_translation_infoi
   (   i   i   (	   R   t   FlaskR    t   routeR   t   version_infoR   R#   t   range(   R   R'   R0   t   x(    (   R   R/   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   test_memory_consumption;   s    c         C   s7   d d l  m } |  j t ƒ  | d d ƒ Wd  QXd  S(   Niÿÿÿÿ(   t	   safe_joins   /foos   ..(   t   flask.helpersR8   t   assert_raisesR    (   R   R8   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   test_safe_join_toplevel_pardirQ   s    (   R    R!   R#   R7   R;   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyR"   6   s   		t   ExceptionTestCasec           B   s   e  Z d  „  Z RS(   c            sÝ   d t  f d „  ƒ  Y‰  t j t ƒ } t | _ | j ˆ  ƒ d „  ƒ } | j d ƒ d „  ƒ } | j d ƒ ‡  f d †  ƒ } | j ƒ  O } | j	 d ƒ } |  j
 | j d d	 ƒ | j	 d ƒ } |  j
 | j d
 ƒ Wd  QXd  S(   Nt   Fooc           B   s   e  Z d  Z RS(   i*   (   R    R!   t   whatever(    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyR=   Z   s   c         S   s   t  |  j ƒ S(   N(   t   strR>   (   t   e(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt
   handle_foo^   s    R$   c           S   s%   t  j t  j t  j d ƒ ƒ ƒ ‚ d  S(   Nt   test(   R   t   abortt   redirectt   url_for(    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyR'   a   s    s   /testc              s   ˆ  ƒ  ‚ d  S(   N(    (    (   R=   (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyRB   d   s    t   Locations   http://localhost/testt   42(   t	   ExceptionR   R2   R    t   Truet   testingt   errorhandlerR3   R(   R)   t   assertEqualt   headersR,   (   R   R/   RA   R'   RB   R-   R.   (    (   R=   s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   test_abortingY   s    	(   R    R!   RN   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyR<   W   s   c          C   sW   t  j ƒ  }  t j j d ƒ d k r= |  j t  j t ƒ ƒ n  |  j t  j t ƒ ƒ |  S(   Nt   RUN_FLASK_MEMORY_TESTSt   1(	   t   unittestt	   TestSuitet   ost   environR)   t   addTestt	   makeSuiteR"   R<   (   t   suite(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyRW   o   s
    (   t   __doc__RS   R   R   R   t	   threadingRQ   t   werkzeug.exceptionsR    t   flask.testsuiteR   t   LockR	   t   objectR   R"   R<   RW   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/regression.pyt   <module>
   s   !