ó
`ž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 m Z d d l m	 Z	 d Z
 d Z d e	 f d     YZ d	 e f d
     YZ e e d   Z d e	 f d     YZ d   Z d S(   sˇ   
    flask.testsuite.config
    ~~~~~~~~~~~~~~~~~~~~~~

    Configuration and instances.

    :copyright: (c) 2011 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
i˙˙˙˙N(   t   contextmanager(   t   FlaskTestCaset   foot   devkeyt   ConfigTestCasec           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   sA   |  j  | j d  |  j  | j d d  |  j d | j  d  S(   NR   t   TEST_KEYR   R   (   t   assert_equalt
   secret_keyt   configt   assert_not_in(   t   selft   app(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   common_object_test   s    c         C   sD   t  j t  } | j j t j d d  d d  |  j |  d  S(   Nt   .i   i    s   .py(   t   flaskt   Flaskt   __name__R   t   from_pyfilet   __file__t   rsplitR   (   R
   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_config_from_file!   s    $c         C   s0   t  j t  } | j j t  |  j |  d  S(   N(   R   R   R   R   t   from_objectR   (   R
   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_config_from_object&   s    c         C   s\   d t  f d     Y} d | f d     Y} t j t  } | j j |  |  j |  d  S(   Nt   Basec           B   s   e  Z d  Z RS(   R   (   R   t
   __module__R   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyR   ,   s   t   Testc           B   s   e  Z d  Z RS(   R   (   R   R   t
   SECRET_KEY(    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyR   .   s   (   t   objectR   R   R   R   R   R   (   R
   R   R   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_config_from_class+   s
    c         C   sň   t  j } zŘ i  t  _ t j t  } y | j j d  Wn, t k
 rf } |  j d t	 |  k  n X|  j d d  |  j
 | j j d d t  i t j d d  d d d 6t  _ |  j | j j d   |  j |  Wd  | t  _ Xd  S(	   Nt   FOO_SETTINGSs   'FOO_SETTINGS' is not seti    s   expected exceptiont   silentR   i   s   .py(   t   ost   environR   R   R   R   t   from_envvart   RuntimeErrort   assert_truet   strt   assert_falset   TrueR   R   R   (   R
   t   envR   t   e(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_config_from_envvar4   s    		$c         C   sË   t  j } zą i d d 6t  _ y# t j t  } | j j d  WnK t k
 r } t |  } |  j	 | j
 d   |  j	 | j d   n X|  j d  |  j | j j d d t  Wd  | t  _ Xd  S(   Ns   missing.cfgR   sH   [Errno 2] Unable to load configuration file (No such file or directory):s   missing.cfg's   expected IOErrorR   (   R   R    R   R   R   R   R!   t   IOErrorR$   R#   t
   startswitht   endswitht   failt   assertFalseR&   (   R
   R'   R   R(   t   msg(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_config_from_envvar_missingG   s    	#c         C   s¤   t  j t  } y | j j d  WnK t k
 rp } t |  } |  j | j d   |  j | j	 d   n X|  j d d  |  j
 | j j d d t  d  S(   Ns   missing.cfgsH   [Errno 2] Unable to load configuration file (No such file or directory):s   missing.cfg'i    s   expected configR   (   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/config.pyt   test_config_missingY   s    c         C   s6   t  j t  } d | j d <|  j | j j d  d  S(   Ni*   t   PERMANENT_SESSION_LIFETIME(   R   R   R   R   R   t   permanent_session_lifetimet   seconds(   R
   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_session_lifetimef   s    (
   R   R   R   R   R   R   R)   R0   R1   R5   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyR      s   								t   LimitedLoaderMockWrapperc           B   s   e  Z d    Z d   Z RS(   c         C   s   | |  _  d  S(   N(   t   loader(   R
   R7   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   __init__m   s    c         C   s5   | d k r% d | } t  |   n  t |  j |  S(   Nt   archivet   get_filenames*   Mocking a loader which does not have `%s.`(   s   archives   get_filename(   t   AttributeErrort   getattrR7   (   R
   t   nameR/   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   __getattr__p   s    
(   R   R   R8   R>   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyR6   l   s   	c         #   s>   t  j     f d   } z | t  _ d VWd  t  _ Xd S(   s  Patch pkgutil.get_loader to give loader without get_filename or archive.

    This provides for tests where a system has custom loaders, e.g. Google App
    Engine's HardenedModulesHook, which have neither the `get_filename` method
    nor the `archive` attribute.
    c             s      |  |    S(   N(    (   t   argst   kwargs(   t   wrapper_classt   old_get_loader(    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt
   get_loader   s    N(   t   pkgutilRC   (   RA   RC   (    (   RA   RB   s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   patch_pkgutil_get_loaderw   s    			t   InstanceTestCasec           B   sk   e  Z d    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 j t  j j t   } y t j t d d Wn) t k
 r` } |  j	 d t
 |   n X|  j d  t j t d | } |  j | j |  d  S(   Nt   instance_patht   instances   must be absolutes   Expected value error(   R   t   patht   abspatht   dirnameR   R   R   R   t
   ValueErrort	   assert_inR$   R-   R   RG   (   R
   t   hereR(   R   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_explicit_instance_paths   s    c         C   sj   d d l  m } t j j t j    } |  j | j t j j | d   d t	 j
 k rf t	 j
 d =n  d  S(   Ni˙˙˙˙(   R   RH   t   main_app(   RP   R   R   RI   RJ   t   getcwdR   RG   t   joint   syst   modules(   R
   R   RN   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_main_module_paths   s
    "c         C   sW   d d l  m } t j j t j j t   } |  j | j t j j	 | d d   d  S(   Ni˙˙˙˙(   R   t	   test_appsRH   (
   t   config_module_appR   R   RI   RJ   RK   R   R   RG   RR   (   R
   R   RN   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_uninstalled_module_paths   s    c         C   sW   d d l  m } t j j t j j t   } |  j | j t j j	 | d d   d  S(   Ni˙˙˙˙(   R   RV   RH   (
   t   config_package_appR   R   RI   RJ   RK   R   R   RG   RR   (   R
   R   RN   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_uninstalled_package_paths¤   s    c         C   sć   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d d d  } t j j |  z8 d d  l	 } |  j
 | j j t  j j | d d   Wd  | t _ t j j |  d t j k rá t j d =n  Xd  S(	   NRV   t   libs	   python2.5s   site-packagesi˙˙˙˙t   vars   site_app-instancet   site_app(   R   RI   RJ   RK   R   RR   RS   t   prefixt   appendR]   R   R   RG   t   removeRT   (   R
   RN   t   expected_prefixt   real_prefixt   site_packagesR]   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_installed_module_pathsŠ   s    	c      
   C   sö   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d d d  } t j j |  t	   v z8 d d  l
 } |  j | j j t  j j | d d   Wd  | t _ t j j |  d t j k rë t j d =n  XWd  QXd  S(	   NRV   R[   s	   python2.5s   site-packagesi˙˙˙˙R\   s   site_app-instanceR]   (   R   RI   RJ   RK   R   RR   RS   R^   R_   RE   R]   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   Rc   R]   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt/   test_installed_module_paths_with_limited_loaderş   s    
	c         C   sŕ   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d  } t j j |  z8 d d  l	 } |  j
 | j j t  j j | d d   Wd  | t _ t j j |  d t j k rŰ t j d =n  Xd  S(   NRV   RI   i˙˙˙˙R\   s   installed_package-instancet   installed_package(   R   RI   RJ   RK   R   RR   RS   R^   R_   Rf   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   t   installed_pathRf   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_installed_package_pathsĚ   s    	c      
   C   sđ   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d  } t j j |  t	   v z8 d d  l
 } |  j | j j t  j j | d d   Wd  | t _ t j j |  d t j k rĺ t j d =n  XWd  QXd  S(   NRV   RI   i˙˙˙˙R\   s   installed_package-instanceRf   (   R   RI   RJ   RK   R   RR   RS   R^   R_   RE   Rf   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   Rg   Rf   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt0   test_installed_package_paths_with_limited_loaderÝ   s    
	c         C   sć   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d d d  } t j j |  z8 d d  l	 } |  j
 | j j t  j j | d d   Wd  | t _ t j j |  d t j k rá t j d =n  Xd  S(	   NRV   R[   s	   python2.5s   site-packagesi˙˙˙˙R\   s   site_package-instancet   site_package(   R   RI   RJ   RK   R   RR   RS   R^   R_   Rj   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   Rc   Rj   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_prefix_package_pathsď   s    	c      
   C   sö   t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d d d  } t j j |  t	   v z8 d d  l
 } |  j | j j t  j j | d d   Wd  | t _ t j j |  d t j k rë t j d =n  XWd  QXd  S(	   NRV   R[   s	   python2.5s   site-packagesi˙˙˙˙R\   s   site_package-instanceRj   (   R   RI   RJ   RK   R   RR   RS   R^   R_   RE   Rj   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   Rc   Rj   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt-   test_prefix_package_paths_with_limited_loader   s    
	c         C   s  t  j j t  j j t   } t  j j | d  } t j | } t _ t  j j | d d d  } t  j j | d  } t j j |  t j j |  z8 d d  l	 } |  j
 | j j t  j j | d d   Wd  | t _ t j j |  t j j |  d	 t j k rt j d	 =n  Xd  S(
   NRV   R[   s	   python2.5s   site-packagess   SiteEgg.eggi˙˙˙˙R\   s   site_egg-instancet   site_egg(   R   RI   RJ   RK   R   RR   RS   R^   R_   Rm   R   R   RG   R`   RT   (   R
   RN   Ra   Rb   Rc   t   egg_pathRm   (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   test_egg_installed_paths  s"    	(   R   R   RO   RU   RX   RZ   Rd   Re   Rh   Ri   Rk   Rl   Ro   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyRF      s   										c          C   s<   t  j   }  |  j t  j t   |  j t  j t   |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   RF   (   t   suite(    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyRt   '  s    (   t   __doc__R   RS   R   RD   Rp   t
   contextlibR    t   flask.testsuiteR   R   R   R   R   R6   RE   RF   Rt   (    (    (    s\   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/flask/testsuite/config.pyt   <module>
   s   R