ó
 `¾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 m Z m	 Z	 m
 Z
 m Z m Z m Z d d l m Z m Z d d l m Z m 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®   
    jinja2.testsuite.loader
    ~~~~~~~~~~~~~~~~~~~~~~~

    Test the loaders.

    :copyright: (c) 2010 by the Jinja Team.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   JinjaTestCaset   dict_loadert   package_loadert   filesystem_loadert   function_loadert   choice_loadert   prefix_loader(   t   Environmentt   loaders(   t   PYPYt   PY2(   t   split_template_path(   t   TemplateNotFoundt   LoaderTestCasec           B   sY   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   c         C   sV   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ |  j t | j d ƒ d  S(   Nt   loaders   justdict.htmlt   FOOs   missing.html(   R   R   t   get_templatet   rendert   stript   AssertionErrort   assert_raisesR   (   t   selft   envt   tmpl(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_dict_loader   s    c         C   sV   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ |  j t | j d ƒ d  S(   NR   s	   test.htmlt   BARs   missing.html(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_package_loader#   s    c         C   sƒ   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ | j d ƒ } | j ƒ  j ƒ  d k si t ‚ |  j t | j d ƒ d  S(   NR   s	   test.htmlR   s   foo/test.htmlR   s   missing.html(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_filesystem_loader)   s    c         C   sƒ   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ | j d ƒ } | j ƒ  j ƒ  d k si t ‚ |  j t | j d ƒ d  S(   NR   s   justdict.htmlR   s	   test.htmlR   s   missing.html(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_choice_loader1   s    c         C   sV   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ |  j t | j d ƒ d  S(   NR   s   justfunction.htmlR   s   missing.html(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_function_loader9   s    c         C   sƒ   t  d t ƒ } | j d ƒ } | j ƒ  j ƒ  d k s< t ‚ | j d ƒ } | j ƒ  j ƒ  d k si t ‚ |  j t | j d ƒ d  S(   NR   s   a/test.htmlR   s   b/justdict.htmlR   t   missing(   R   R   R   R   R   R   R   R   (   R   R   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_prefix_loader?   s    c            sˆ  t  ‰  d t j f ‡  f d †  ƒ  Y} t d | ƒ  d d ƒ } | j d ƒ } | | j d ƒ k sg t ‚ t ‰  | | j d ƒ k	 sˆ t ‚ t  ‰  t d | ƒ  d d ƒ } | j d ƒ | j d ƒ k	 sÊ t ‚ t d | ƒ  d d ƒ } | j d	 ƒ } | j d
 ƒ } | | j d
 ƒ k st ‚ | | j d	 ƒ k s6t ‚ | j d ƒ } d	 | j k sZt ‚ d
 | j k sot ‚ d | j k s„t ‚ d  S(   Nt
   TestLoaderc              s   e  Z ‡  f d  †  Z RS(   c            s   d d  ‡  f d †  f S(   Nu   fooc              s   ˆ  S(   N(    (    (   t   changed(    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   <lambda>K   s    (   t   None(   R   t   environmentt   template(   R!   (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt
   get_sourceJ   s    (   t   __name__t
   __module__R&   (    (   R!   (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR    I   s   R   t
   cache_sizeiÿÿÿÿR%   i    i   t   onet   twot   three(   t   FalseR   t
   BaseLoaderR   R   R   t   Truet   cache(   R   R    R   R   t   t1t   t2t   t3(    (   R!   s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_cachingG   s(    c         C   su   i d d 6} t  d t j | ƒ ƒ } | j d ƒ j ƒ  d k sF t ‚ d | d <| j d ƒ j ƒ  d k sq t ‚ d  S(   NR*   t   fooR   R+   (   R   R   t
   DictLoaderR   R   R   (   R   t   mappingR   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt"   test_dict_loader_cache_invalidatesa   s
    !
c         C   sS   t  d ƒ d d g k s t ‚ t  d ƒ d d g k s< t ‚ |  j t t  d ƒ d  S(   Ns   foo/barR5   t   bars	   ./foo/bars   ../foo(   R   R   R   R   (   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_split_template_pathh   s    (   R'   R(   R   R   R   R   R   R   R4   R8   R:   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR      s   								t   ModuleLoaderTestCasec           B   s‡   e  Z d Z d  e d „ Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z e rs e rs d	 „  Z n  d
 „  Z d „  Z RS(   t   deflatedc         C   sµ   t  t |  ƒ j ƒ  g  } t d t ƒ |  _ | d  k	 rS t j d d ƒ d |  _	 n t j
 ƒ  |  _	 |  j j |  j	 d | d | j d | ƒt d t j |  j	 ƒ ƒ |  _ d j | ƒ S(	   NR   t   suffixs   .zipi   t   zipt   log_functiont
   py_compilet    (   t   superR;   t   setupR   R   t   reg_envR#   t   tempfilet   mkstempt   archivet   mkdtempt   compile_templatest   appendR   t   ModuleLoadert   mod_envt   join(   R   R>   R@   t   log(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   compile_downq   s    	c         C   sj   t  t |  ƒ j ƒ  t |  d ƒ rf t j j |  j ƒ rJ t j |  j ƒ n t	 j
 |  j ƒ d  |  _ n  d  S(   NRL   (   RB   R;   t   teardownt   hasattrt   ost   patht   isfileRG   t   removet   shutilt   rmtreeR#   (   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRP      s    c         C   sF   |  j  ƒ  } d | k s t ‚ d | k s0 t ‚ d | k sB t ‚ d  S(   NsK   Compiled "a/foo/test.html" as tmpl_a790caf9d669e39ea4d280d597ec891c4ef0404as   Finished compiling templatessG   Could not compile "a/syntaxerror.html": Encountered unknown tag 'endif'(   RO   R   (   R   RN   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_logˆ   s    c         C   sˆ   |  j  j d ƒ } |  j j d ƒ } | j ƒ  | j ƒ  k sB t ‚ |  j  j d ƒ } |  j j d ƒ } | j ƒ  | j ƒ  k s„ t ‚ d  S(   Ns   a/test.htmls   b/justdict.html(   RD   R   RL   R   R   (   R   t   tmpl1t   tmpl2(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   _test_common   s    c         C   s   |  j  d d ƒ |  j ƒ  d  S(   NR>   R<   (   RO   R[   (   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_deflated_zip_compile™   s    c         C   s   |  j  d d ƒ |  j ƒ  d  S(   NR>   t   stored(   RO   R[   (   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_stored_zip_compile   s    c         C   s   |  j  d d  ƒ |  j ƒ  d  S(   NR>   (   RO   R#   R[   (   R   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_filesystem_compile¡   s    c         C   s½   |  j  ƒ  |  j j d ƒ } t j j d ƒ } |  j j j j } t	 |  j j j | ƒ s^ t
 ‚ | t j k ss t
 ‚ d  |  _ } y d d  l } | j ƒ  Wn n X| t j k s¹ t
 ‚ d  S(   Ns   a/test.htmliÿÿÿÿ(   RO   RL   R   R   RK   t   get_template_keyR   t   moduleR'   RQ   R   t   syst   modulesR#   t   gct   collect(   R   R   t   keyt   nameRd   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_weak_references¥   s    
c         C   sd   |  j  d t ƒ } d | k s$ t ‚ |  j j d ƒ } |  j j j j } | j j	 d ƒ s` t ‚ d  S(   NR@   s   Byte-compiled "a/test.html"s   a/test.htmls   .pyc(
   RO   R/   R   RL   R   R   Ra   t-   tmpl_3c4ddf650c1a73df961a6d3d2ce2752f1b8fd490t   __file__t   endswith(   R   RN   RY   t   mod(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   test_byte_compilation»   s
    c         C   s‘   |  j  ƒ  } t j |  j j t j i d d 6ƒ g ƒ |  j _ |  j j d ƒ } |  j | j ƒ  d ƒ |  j j d ƒ } |  j | j ƒ  d ƒ d  S(   Nt   DICT_TEMPLATEt   DICT_SOURCEs   a/test.htmlR   (	   RO   R   t   ChoiceLoaderRL   R   R6   R   t   assert_equalR   (   R   RN   RY   RZ   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR   Ã   s    	"c         C   s™   |  j  ƒ  } t j i |  j j d 6t j i d d 6ƒ d 6ƒ |  j _ |  j j d ƒ } |  j | j ƒ  d ƒ |  j j d ƒ } |  j | j ƒ  d ƒ d  S(   Nt   MODRn   s	   test.htmlt   DICTs   MOD/a/test.htmlR   s   DICT/test.html(	   RO   R   t   PrefixLoaderRL   R   R6   R   Rq   R   (   R   RN   RY   RZ   (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR   Ð   s    	#N(   R'   R(   R#   RG   R-   RO   RP   RX   R[   R\   R^   R_   Rh   R
   R	   Rm   R   R   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyR;   n   s   										c          C   s<   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   R;   (   t   suite(    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyRy   Þ   s    (   t   __doc__RR   Rb   RE   RV   Ru   t   jinja2.testsuiteR    R   R   R   R   R   R   t   jinja2R   R   t   jinja2._compatR	   R
   t   jinja2.loadersR   t   jinja2.exceptionsR   R   R;   Ry   (    (    (    s]   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/loader.pyt   <module>
   s   4Sp