ó
 `¾Tc        
   @   s¾   d  Z  d d l Z d d l m Z d d l m Z m Z d d l m Z m	 Z	 e d e e
 d d d	 d
 d d ƒ ƒ ƒ Z d e j d <d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d S(   sÉ   
    jinja2.testsuite.imports
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Tests the import features (with includes).

    :copyright: (c) 2010 by the Jinja Team.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   JinjaTestCase(   t   Environmentt
   DictLoader(   t   TemplateNotFoundt   TemplatesNotFoundt   loadert   modules5   {% macro test() %}[{{ foo }}|{{ bar }}]{% endmacro %}t   headers   [{{ foo }}|{{ 23 }}]t	   o_printers	   ({{ o }})i   t   bart   ImportsTestCasec           B   s#   e  Z d  „  Z d „  Z d „  Z RS(   c         C   s  t  j d ƒ } | j d d ƒ d k s- t ‚ t  j d ƒ } | j d d ƒ d k sZ t ‚ t  j d ƒ } | j d d ƒ d k s‡ t ‚ t  j d ƒ } | j d d ƒ d k s´ t ‚ t  j d	 ƒ } | j d d ƒ d k sá t ‚ t  j d
 ƒ } | j d d ƒ d k st ‚ d  S(   Ns(   {% import "module" as m %}{{ m.test() }}t   fooi*   s   [|23]s8   {% import "module" as m without context %}{{ m.test() }}s5   {% import "module" as m with context %}{{ m.test() }}s   [42|23]s+   {% from "module" import test %}{{ test() }}s;   {% from "module" import test without context %}{{ test() }}s8   {% from "module" import test with context %}{{ test() }}(   t   test_envt   from_stringt   rendert   AssertionError(   t   selft   t(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_context_imports   s    c         C   sE   t  j d ƒ t  j d ƒ t  j d ƒ t  j d ƒ t  j d ƒ d  S(   Ns-   {% from "foo" import bar, baz with context %}s.   {% from "foo" import bar, baz, with context %}s)   {% from "foo" import bar, with context %}s*   {% from "foo" import bar, with, context %}s.   {% from "foo" import bar, with with context %}(   R   R   (   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_trailing_comma+   s
    c         C   so   t  j d ƒ j } | j ƒ  d k s* t ‚ t | d ƒ s@ t ‚ | j d k sU t ‚ t | d ƒ sk t ‚ d  S(   Ns  
            {% macro toplevel() %}...{% endmacro %}
            {% macro __private() %}...{% endmacro %}
            {% set variable = 42 %}
            {% for item in [1] %}
                {% macro notthere() %}{% endmacro %}
            {% endfor %}
        s   ...t	   __missingi*   t   notthere(   R   R   R   t   toplevelR   t   hasattrt   variable(   R   t   m(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_exports2   s    (   t   __name__t
   __module__R   R   R   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyR
      s   		t   IncludesTestCasec           B   s5   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s‹   t  j d ƒ } | j d d ƒ d k s- t ‚ t  j d ƒ } | j d d ƒ d k sZ t ‚ t  j d ƒ } | j d d ƒ d k s‡ t ‚ d  S(   Ns   {% include "header" %}R   i*   s   [42|23]s#   {% include "header" with context %}s&   {% include "header" without context %}s   [|23](   R   R   R   R   (   R   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_context_includeC   s    c         C   s©  t  j d ƒ } | j d d ƒ d k s- t ‚ t  j d ƒ } | j d d ƒ d k sZ t ‚ t  j d ƒ } |  j t | j ƒ y | j ƒ  WnC t k
 rÏ } | j d d	 g k s· t ‚ | j d	 k sâ t ‚ n Xt	 sâ t d
 ƒ ‚ d „  } t  j d ƒ } | | ƒ t  j d ƒ } | | d d d g ƒt  j d ƒ } | | d d ƒt  j d ƒ } | | d d ƒt  j d ƒ } | | d d ƒt  j d ƒ } | | d d ƒd  S(   Ns#   {% include ["missing", "header"] %}R   i*   s   [42|23]s4   {% include ["missing", "missing2"] ignore missing %}t    s%   {% include ["missing", "missing2"] %}t   missingt   missing2s   thou shalt raisec         [   s)   d | d <|  j  | ƒ d k s% t ‚ d  S(   Ni*   R   s   [42|23](   R   R   (   R   t   ctx(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_includes\   s    
s   {% include x %}t   xR   s   {% include [x, "header"] %}s   {% include [x] %}(
   R   R   R   R   t   assert_raisesR   R   t	   templatest   namet   False(   R   R   t   eR#   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_choice_includesK   s2    	
c         C   sf   t  j d ƒ } |  j t | j ƒ x= d D]5 } t  j d | d ƒ } | j ƒ  d k s) t ‚ q) Wd  S(   Ns   {% include "missing" %}R   s   with contexts   without contexts$   {% include "missing" ignore missing s    %}(   R   s   with contexts   without context(   R   R   R%   R   R   R   (   R   R   t   extra(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_include_ignoring_missingm   s    c         C   sI   t  d t t d d d d ƒ ƒ ƒ } | j d ƒ j ƒ  d k sE t ‚ d  S(   NR   t   mains;   {% for item in [1, 2, 3] %}{% include 'item' %}{% endfor %}t   items
   {{ item }}t   123(   R   R   t   dictt   get_templateR   R   (   R   t   env(    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt#   test_context_include_with_overridesu   s    c         C   s1   t  j d ƒ } | j ƒ  j ƒ  d k s- t ‚ d  S(   Nsß   
            {% macro outer(o) %}
            {% macro inner() %}
            {% include "o_printer" %}
            {% endmacro %}
            {{ inner() }}
            {% endmacro %}
            {{ outer("FOO") }}
        s   (FOO)(   R   R   R   t   stripR   (   R   R   (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   test_unoptimized_scopes|   s    	(   R   R   R   R*   R,   R3   R5   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyR   A   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/imports.pyR:   ‰   s    (   t   __doc__R6   t   jinja2.testsuiteR    t   jinja2R   R   t   jinja2.exceptionsR   R   R0   R   t   globalsR
   R   R:   (    (    (    s^   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/imports.pyt   <module>
   s   &H