ó
 `¾Tc           @   s0  d  Z  d d l Z d d l m Z d d l m Z m Z m Z m Z m	 Z	 d d l
 m Z m Z m Z m Z d d l m Z m Z m Z m Z m Z e ƒ  Z e r¯ d „  Z n e Z d e f d	 „  ƒ  YZ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d S(   sÚ   
    jinja2.testsuite.lexnparse
    ~~~~~~~~~~~~~~~~~~~~~~~~~~

    All the unittests regarding lexing, parsing and syntax.

    :copyright: (c) 2010 by the Jinja Team.
    :license: BSD, see LICENSE for more details.
iÿÿÿÿN(   t   JinjaTestCase(   t   Environmentt   Templatet   TemplateSyntaxErrort   UndefinedErrort   nodes(   t   nextt	   iteritemst	   text_typet   PY2(   t   Tokent   TokenStreamt	   TOKEN_EOFt   TOKEN_BLOCK_BEGINt   TOKEN_BLOCK_ENDc         C   s   t  |  ƒ d S(   Ni   (   t   repr(   t   string(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   jinja_string_repr   s    t   TokenStreamTestCasec           B   s>   e  Z e d  e d ƒ e d e d ƒ g Z d „  Z d „  Z RS(   i   t    i   c         C   sí   t  |  j d d ƒ } | j j t k s- t ‚ t | ƒ s? t ‚ t | j ƒ sU t ‚ t | ƒ | j j t	 k sw t ‚ t | ƒ s‰ t ‚ t | j ƒ sŸ t ‚ t | ƒ | j j t
 k sÁ t ‚ t | ƒ sÔ t ‚ t | j ƒ sé t ‚ d  S(   Nt   foot   bar(   R   t   test_tokenst   currentt   typeR   t   AssertionErrort   boolt   eosR   R   R   (   t   selft   ts(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_simple%   s    

c         C   sG   g  t  |  j d d ƒ D] } | j ^ q } | d d g k sC t ‚ d  S(   NR   R   t   block_begint	   block_end(   R   R   R   R   (   R   t   tt   token_types(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_iter3   s    +(   t   __name__t
   __module__R
   R   R   R   R   R#   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR       s   	t   LexerTestCasec           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   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   NsH   {% raw %}foo{% endraw %}|{%raw%}{{ bar }}|{% baz %}{%       endraw    %}s   foo|{{ bar }}|{% baz %}(   t   envt   from_stringt   renderR   (   R   t   tmpl(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_raw1:   s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns'   1  {%- raw -%}   2   {%- endraw -%}   3t   123(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_raw2?   s    c         C   sR   t  d d d d ƒ } | j d ƒ } | j d t t d ƒ ƒ ƒ d k sN t ‚ d  S(	   Ns   {%s   %}s   ${t   }sC   {% for item in seq
            %}${{'foo': item}|upper}{% endfor %}t   seqi   s   {'FOO': 0}{'FOO': 1}{'FOO': 2}(   R   R(   R)   t   listt   rangeR   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_balancingC   s    	c         C   sR   t  d d d d ƒ } | j d ƒ } | j d t t d ƒ ƒ ƒ d k sN t ‚ d  S(	   Ns   <!--s   -->t   {R.   sG   <ul>
<!--- for item in seq -->
  <li>{item}</li>
<!--- endfor -->
</ul>R/   i   s1   <ul>
  <li>0</li>
  <li>1</li>
  <li>2</li>
</ul>(   R   R(   R)   R0   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_commentsI   s    	c         C   sg   x? d	 D]7 } t  j d t | ƒ ƒ } | j ƒ  | k s t ‚ q Wt  j d ƒ j ƒ  d k sc t ‚ d  S(
   Nu    u   â™¨u   Ã¤u   	u   u   
s   {{ %s }}s   {{ "\N{HOT SPRINGS}" }}(   u    u   â™¨u   Ã¤u   	u   u   
(   R'   R(   R   R)   R   (   R   t   charR*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_string_escapesT   s    c         C   sO   d d l  m } t j d ƒ } | j ƒ  | d ƒ d | d ƒ k sK t ‚ d  S(   Niÿÿÿÿ(   t   pformatu&   {{ 'foo'|pprint }}|{{ 'bÃ¤r'|pprint }}R   t   |u   bÃ¤r(   t   pprintR7   R'   R(   R)   R   (   R   R7   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_bytefallbackZ   s    c         C   s{   d d l  m } xd t | ƒ D]V \ } } | d k r; q n  t j j d | ƒ } t | ƒ | j j | k s t	 ‚ q Wd  S(   Niÿÿÿÿ(   t	   operatorss   ([{}])s   {{ %s }}(
   t   jinja2.lexerR;   R   R'   t   lexert   tokenizeR   R   R   R   (   R   R;   t   testt   expectt   stream(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_operators_   s    
c         C   s]   xV d D]N } t  d | ƒ } | j d ƒ } | j ƒ  } | j | d ƒ d k s t ‚ q Wd  S(	   Ns   s   
s   
t   newline_sequences	   1
2
3
4
t   Xt   1X2X3X4(   s   s   
s   
(   R   R(   R)   t   replaceR   (   R   R/   R'   R*   t   result(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_normalizingh   s
    c         C   sÄ   x½ t  t g D]¯ } t d | ƒ } x— d i  f d i  f d i d t 6f d i d t 6f g D]] \ } } | j | ƒ } | j | | ƒ } | j ƒ  } | | k s[ t | | | | f ƒ ‚ q[ Wq Wd  S(   Nt   keep_trailing_newlineR   s
   no
newlines   with
newline
s   with
newlines   with
several


s   with
several

(   t   Truet   FalseR   R(   t   getR)   R   (   R   t   keepR'   t   templatet   expectedR*   R@   RG   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_trailing_newlineo   s    		 (   R$   R%   R+   R-   R2   R4   R6   R:   RB   RH   RP   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR&   8   s   									t   ParserTestCasec           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   sX   t  d d d d d d ƒ } | j d ƒ } | j d t t d ƒ ƒ ƒ d	 k sT t ‚ d  S(
   Ns   <?s   ?>s   <?=s   <!--s   -->s_   <!-- I'm a comment, I'm not interesting --><? for item in seq -?>
    <?= item ?>
<?- endfor ?>R/   i   t   01234(   R   R(   R)   R0   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_php_syntax   s    	c         C   sX   t  d d d d d d ƒ } | j d ƒ } | j d t t d ƒ ƒ ƒ d k sT t ‚ d  S(	   Ns   <%s   %>s   <%=s   <%#s]   <%# I'm a comment, I'm not interesting %><% for item in seq -%>
    <%= item %>
<%- endfor %>R/   i   RR   (   R   R(   R)   R0   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_erb_syntaxˆ   s    	c         C   sX   t  d d d d d d ƒ } | j d ƒ } | j d t t d ƒ ƒ ƒ d	 k sT t ‚ d  S(
   Ns   <!--s   -->s   ${R.   s   <!--#sb   <!--# I'm a comment, I'm not interesting --><!-- for item in seq --->
    ${item}
<!--- endfor -->R/   i   RR   (   R   R(   R)   R0   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_comment_syntax‘   s    	c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{{'foo':'bar'}.foo}}R   (   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR2   š   s    c         C   s1   t  j d ƒ } | j ƒ  j ƒ  d k s- t ‚ d  S(   NsR   {# foo comment
and bar comment #}
{% macro blub() %}foo{% endmacro %}
{{ blub() }}R   (   R'   R(   R)   t   stripR   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_start_commentž   s    	c      	   C   s  t  d d d d d d d ƒ } | j d ƒ } g  | j d t t d	 ƒ ƒ ƒ j ƒ  D] } t | j ƒ  ƒ ^ qR t t d	 ƒ ƒ k sˆ t ‚ t  d d d d d d d d
 ƒ } | j d ƒ } g  | j d t t d	 ƒ ƒ ƒ j ƒ  D] } t | j ƒ  ƒ ^ qÝ t t d	 ƒ ƒ k st ‚ d  S(   Ns   <%s   %>s   ${R.   s   <%#t   %s>   <%# regular comment %>
% for item in seq:
    ${item}
% endforR/   i   s   ##sW   <%# regular comment %>
% for item in seq:
    ${item} ## the rest of the stuff
% endfor(	   R   R(   R)   R0   R1   t   splitt   intRV   R   (   R   R'   R*   t   x(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_line_syntax¥   s    	@!	@c      	   C   s¸   t  d d d d d d d d ƒ } | j d	 ƒ } | j d
 d d g ƒ j ƒ  d k sZ t ‚ t  d d d d d d d d ƒ } | j d ƒ } | j d
 d d g ƒ j ƒ  d k s´ t ‚ d  S(   Ns   {%s   %}s   ${R.   s   /*s   */s   ##t   #sw   /* ignore me.
   I'm a multiline comment */
## for item in seq:
* ${item}          # this is just extra stuff
## endforR/   i   i   s   * 1
* 2sŸ   /* ignore me.
   I'm a multiline comment */
# for item in seq:
* ${item}          ## this is just extra stuff
    ## extra stuff i just want to ignore
# endfors   * 1

* 2(   R   R(   R)   RV   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_line_syntax_priority¸   s    !	*!	c         C   s[   d „  } | d d ƒ | d d ƒ | d d ƒ | d d	 ƒ | d
 d ƒ | d d ƒ d  S(   Nc         S   sX   y t  |  ƒ Wn1 t k
 rA } t | ƒ | k sT t d ƒ ‚ n Xt sT t d ƒ ‚ d  S(   Ns   unexpected error messages    that was supposed to be an error(   R   R   t   strR   RK   (   t   codeRO   t   e(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   assert_errorÍ   s
    "s#   {% for item in seq %}...{% endif %}s”   Encountered unknown tag 'endif'. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'.s<   {% if foo %}{% for item in seq %}...{% endfor %}{% endfor %}s   Encountered unknown tag 'endfor'. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.s   {% if foo %}s—   Unexpected end of template. Jinja was looking for the following tags: 'elif' or 'else' or 'endif'. The innermost block that needs to be closed is 'if'.s   {% for item in seq %}s   Unexpected end of template. Jinja was looking for the following tags: 'endfor' or 'else'. The innermost block that needs to be closed is 'for'.s   {% block foo-bar-baz %}sp   Block names in Jinja have to be valid Python identifiers and may not contain hyphens, use an underscore instead.s   {% unknown_tag %}s&   Encountered unknown tag 'unknown_tag'.(    (   R   Rb   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_error_messagesÌ   s    	(
   R$   R%   RS   RT   RU   R2   RW   R\   R^   Rc   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyRQ   }   s   										t   SyntaxTestCasec           B   s1  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  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   sD   t  ƒ  } d „  | j d <| j d ƒ } | j ƒ  d k s@ t ‚ d  S(   Nc         S   s   |  | | | | S(   N(    (   t   at   bt   cRa   t   g(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   <lambda>ð   s    R   s2   {{ foo('a', c='d', e='f', *['b'], **{'g': 'h'}) }}t   abdfh(   R   t   globalsR(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_callî   s    	c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns(   {{ [1, 2, 3][:] }}|{{ [1, 2, 3][::-1] }}s   [1, 2, 3]|[3, 2, 1](   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_slicingô   s    c         C   s8   t  j d ƒ } | j d i d d 6ƒ d k s4 t ‚ d  S(   Ns   {{ foo.bar }}|{{ foo['bar'] }}R   i*   R   s   42|42(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_attrø   s    c         C   s:   t  j d ƒ } | j d d d d g ƒ d k s6 t ‚ d  S(   Ns   {{ foo[0] }}|{{ foo[-1] }}R   i    i   i   s   0|2(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_subscriptü   s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns    {{ () }}|{{ (1,) }}|{{ (1, 2) }}s   ()|(1,)|(1, 2)(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt
   test_tuple   s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns$   {{ (1 + 1 * 2) - 3 / 2 }}|{{ 2**3 }}s   1.5|8(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_math  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns$   {{ 3 // 2 }}|{{ 3 / 2 }}|{{ 3 % 2 }}s   1|1.5|1(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_div  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{ +3 }}|{{ -3 }}s   3|-3(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt
   test_unary  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{ [1, 2] ~ 'foo' }}s	   [1, 2]foo(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_concat  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns>   {{ 1 > 0 }}|{{ 1 >= 1 }}|{{ 2 < 3 }}|{{ 2 == 2 }}|{{ 1 <= 1 }}s   True|True|True|True|True(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_compare  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns-   {{ 1 in [1, 2, 3] }}|{{ 1 not in [1, 2, 3] }}s
   True|False(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_inop  s    c         C   s1   t  j d ƒ } | j ƒ  j ƒ  d k s- t ‚ d  S(   Ns   {{ [] }}|{{ {} }}|{{ () }}s   []|{}|()(   R'   R(   R)   t   lowerR   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_literals  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns8   {{ true and false }}|{{ false or true }}|{{ not false }}s   False|True|True(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt	   test_bool!  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns8   {{ (true and false) or (false and true) and not false }}RK   (   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_grouping&  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns!   {{ [1, 2, 3].0 }}|{{ [[1]].0.0 }}s   1|1(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_django_attr*  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{ 0 if true else 1 }}t   0(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_conditional_expression.  s    c         C   sM   t  j d ƒ } | j ƒ  d k s' t ‚ t  j d ƒ } |  j t | j ƒ d  S(   Ns   <{{ 1 if false }}>s   <>s   <{{ (1 if false).bar }}>(   R'   R(   R)   R   t   assert_raisesR   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt!   test_short_conditional_expression2  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{ "foo"|upper + "bar"|upper }}t   FOOBAR(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_filter_priority9  s    c         C   s¯   t  d f t  d f t  d f t  d f t  d f t d f t d f t d f t d	 f t d
 f g
 } xH | D]@ \ } } | r– |  j t t j d | ƒ qg t j d | ƒ qg Wd  S(   Ns	   *foo, bars
   *foo, *bars   *foo, bar=42s   **foo, *bars
   **foo, bars   foo, bars   foo, bar=42s   foo, bar=23, *argss   a, b=c, *d, **es   *foo, **bars   {{ foo(%s) }}s   foo(%s)(   RJ   RK   R~   R   R'   R(   (   R   t   testst   should_failt   sig(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_function_calls=  s    										c         C   sB   x; d d d d d d d d g D] } t  j | ƒ s t ‚ q Wd  S(	   Ns   {{ () }}s   {{ (1, 2) }}s   {{ (1, 2,) }}s   {{ 1, }}s
   {{ 1, 2 }}s(   {% for foo, bar in seq %}...{% endfor %}s&   {% for x in foo, bar %}...{% endfor %}s"   {% for x in foo, %}...{% endfor %}(   R'   R(   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_tuple_exprQ  s    c         C   s1   t  j d ƒ } | j ƒ  j ƒ  d k s- t ‚ d  S(   Ns)   {{ (1, 2,) }}|{{ [1, 2,] }}|{{ {1: 2,} }}s   (1, 2)|[1, 2]|{1: 2}(   R'   R(   R)   Rw   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_trailing_comma^  s    c         C   s'   t  j d ƒ |  j t t  j d ƒ d  S(   Ns$   {% block foo %}...{% endblock foo %}s   {% block x %}{% endblock y %}(   R'   R(   R~   R   (   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_block_end_nameb  s    c         C   sz   xs t  t d  f D]b } t j d t | ƒ t | ƒ j ƒ  t | ƒ j ƒ  f ƒ } | j ƒ  d | | f k s t	 ‚ q Wd  S(   Ns   {{ %s }}|{{ %s }}|{{ %s }}s   %s|%s|(
   RJ   RK   t   NoneR'   R(   R_   Rw   t   upperR)   R   (   R   t   constR*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_constant_casingg  s    	1c         C   s;   |  j  t t j d ƒ t j d ƒ j ƒ  d k s7 t ‚ d  S(   Ns   {{ foo is string is sequence }}s"   {{ 42 is string or 42 is number }}RJ   (   R~   R   R'   R(   R)   R   (   R   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_test_chainingn  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns   {{ "foo" "bar" "baz" }}t	   foobarbaz(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_string_concatenationt  s    c         C   sI   t  d ƒ } t j d ƒ } | j d | ƒ t d | k ƒ k sE t ‚ d  S(   Nid   s   {{ not 42 in bar }}R   i*   (   R1   R'   R(   R)   R   R   (   R   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt
   test_notinx  s    c         C   sJ   d t  f d „  ƒ  Y} t j d ƒ } | j d | ƒ  ƒ d k sF t ‚ d  S(   Nt   Fooc           B   s   e  Z d  „  Z RS(   c         S   s   | S(   N(    (   R   R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   __getitem__  s    (   R$   R%   R’   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR‘   ~  s   s   {{ foo[1, 2] }}R   u   (1, 2)(   t   objectR'   R(   R)   R   (   R   R‘   R!   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_implicit_subscribed_tuple}  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   Ns,   {% raw %}{{ FOO }} and {% BAR %}{% endraw %}s   {{ FOO }} and {% BAR %}(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR-   „  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   NsP   {{ true }}|{{ false }}|{{ none }}|{{ none is defined }}|{{ missing is defined }}s   True|False|None|True|False(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt
   test_constˆ  s    c         C   sb   t  j d ƒ } t | j d j d t j ƒ s5 t ‚ t | j d j d j t j ƒ s^ t ‚ d  S(   Ns   {{ -1|foo }}i    (	   R'   t   parset
   isinstancet   bodyR   t   FilterR   t   nodet   Neg(   R   Rš   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_neg_filter_priority  s    &c         C   s=   d } d } x* | | f D] } |  j  t t j | ƒ q Wd  S(   Ns   {% set true = 42 %}s!   {% for none in seq %}{% endfor %}(   R~   R   R'   R(   (   R   t	   constass1t	   constass2R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_const_assign’  s    c         C   s+   t  j d ƒ } | j ƒ  d k s' t ‚ d  S(   NsO   {% set foo = 0 %}{% for item in [1, 2] %}{% set foo = 1 %}{% endfor %}{{ foo }}R|   (   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_localset˜  s    	c         C   sl   t  j d ƒ } | j d i d d 6ƒ d k s4 t ‚ t  j d ƒ } | j d i d d 6ƒ d k sh t ‚ d  S(   Ns   {{ -foo["bar"] }}R   i*   R   s   -42s   {{ -foo["bar"]|abs }}t   42(   R'   R(   R)   R   (   R   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_parse_unaryž  s    %(#   R$   R%   Rl   Rm   Rn   Ro   Rp   Rq   Rr   Rs   Rt   Ru   Rv   Rx   Ry   Rz   R{   R}   R   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/jinja2/testsuite/lexnparse.pyRd   ì   sB   																																t   LstripBlocksTestCasec           B   sÅ   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  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  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   Nt   lstrip_blockst   trim_blockss!       {% if True %}
    {% endif %}s   
(   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip§  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s!       {% if True %}
    {% endif %}R   (   R   RJ   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_trim¬  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s#       {%+ if True %}
    {%+ endif %}s	       
    (   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_no_lstrip±  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s-       hello{% if True %}
    goodbye{% endif %}s       hello
    goodbye(   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_endline¶  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s%       {% if True %}hello    {% endif %}s	   hello    (   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_inline»  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s:       {% if True %}a {% if True %}b {% endif %}c {% endif %}s   a b c (   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_nestedÀ  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s.       abc {% if True %}
        hello{% endif %}s       abc 
        hello(   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_left_charsÅ  s    	c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s&       {% set x = " {% str %} " %}{{ x }}s    {% str %} (   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_embeded_stringsË  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s   


{% set hello = 1 %}s   


(   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt%   test_lstrip_preserve_leading_newlinesÐ  s    c         C   s@   t  d t d t ƒ } | j d ƒ } | j ƒ  d k s< t ‚ d  S(   NR¤   R¥   s%       {# if True #}
hello
    {#endif#}s   
hello
(   R   RJ   RK   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_commentÕ  s    	c         C   sX   t  d d d d d d d d d t d	 t ƒ} | j d
 ƒ } | j ƒ  d k sT t ‚ d  S(   Ns   <%s   %>s   ${R.   s   <%#RX   s   ##R¤   R¥   s%       <% if True %>hello    <% endif %>s	   hello    (   R   RJ   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt    test_lstrip_angle_bracket_simpleÜ  s    c         C   sX   t  d d d d d d d d d t d	 t ƒ} | j d
 ƒ } | j ƒ  d k sT t ‚ d  S(   Ns   <%s   %>s   ${R.   s   <%#RX   s   ##R¤   R¥   s'       <%# if True %>hello    <%# endif %>s	   hello    (   R   RJ   R(   R)   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt!   test_lstrip_angle_bracket_commentâ  s    c         C   s}   t  d d d d d d d d d t d	 t ƒ} | j d
 ƒ } | j d t d ƒ ƒ d j d „  t d ƒ Dƒ ƒ k sy t ‚ d  S(   Ns   <%s   %>s   ${R.   s   <%#RX   s   ##R¤   R¥   se       <%# regular comment %>
    <% for item in seq %>
${item} ## the rest of the stuff
   <% endfor %>R/   i   R   c         s   s   |  ] } d  | Vq d S(   s   %s
N(    (   t   .0R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pys	   <genexpr>ñ  s    (   R   RJ   R(   R)   R1   t   joinR   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_lstrip_angle_bracketè  s    	c         C   s}   t  d d d d d d d d d t d	 t ƒ} | j d
 ƒ } | j d t d ƒ ƒ d j d „  t d ƒ Dƒ ƒ k sy t ‚ d  S(   Ns   <%s   %>s   ${R.   s   <%#RX   s   ##R¤   R¥   s_       <%#regular comment%>
    <%for item in seq%>
${item} ## the rest of the stuff
   <%endfor%>R/   i   R   c         s   s   |  ] } d  | Vq d S(   s   %s
N(    (   R²   R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pys	   <genexpr>ü  s    (   R   RJ   R(   R)   R1   R³   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt!   test_lstrip_angle_bracket_compactó  s    	c         C   s^   t  d d d d d d d t d t ƒ} | j d ƒ } | j d	 t d
 ƒ ƒ d k sZ t ‚ d  S(   Ns   <?s   ?>s   <?=s   <!--s   -->R¤   R¥   sp       <!-- I'm a comment, I'm not interesting -->
    <? for item in seq -?>
        <?= item ?>
    <?- endfor ?>R/   i   RR   (   R   RJ   R(   R)   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_php_syntax_with_manualþ  s
    	c         C   sw   t  d d d d d d d t d t ƒ} | j d ƒ } | j d	 t d
 ƒ ƒ d j d „  t d
 ƒ Dƒ ƒ k ss t ‚ d  S(   Ns   <?s   ?>s   <?=s   <!--s   -->R¤   R¥   sn       <!-- I'm a comment, I'm not interesting -->
    <? for item in seq ?>
        <?= item ?>
    <? endfor ?>R/   i   R   c         s   s   |  ] } d  | Vq d S(   s           %s
N(    (   R²   R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pys	   <genexpr>  s    (   R   RJ   R(   R)   R1   R³   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyRS     s
    	c         C   sw   t  d d d d d d d t d t ƒ} | j d ƒ } | j d	 t d
 ƒ ƒ d j d „  t d
 ƒ Dƒ ƒ k ss t ‚ d  S(   Ns   <?s   ?>s   <?=s   <!--s   -->R¤   R¥   sh       <!-- I'm a comment, I'm not interesting -->
    <?for item in seq?>
        <?=item?>
    <?endfor?>R/   i   R   c         s   s   |  ] } d  | Vq d S(   s           %s
N(    (   R²   R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pys	   <genexpr>  s    (   R   RJ   R(   R)   R1   R³   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_php_syntax_compact  s
    	c         C   sw   t  d d d d d d d t d t ƒ} | j d ƒ } | j d t d	 ƒ ƒ d
 j d „  t d	 ƒ Dƒ ƒ k ss t ‚ d  S(   Ns   <%s   %>s   <%=s   <%#R¤   R¥   se   <%# I'm a comment, I'm not interesting %>
    <% for item in seq %>
    <%= item %>
    <% endfor %>
R/   i   R   c         s   s   |  ] } d  | Vq d S(   s       %s
N(    (   R²   R[   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pys	   <genexpr>*  s    (   R   RJ   R(   R)   R1   R³   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyRT     s
    	c         C   s^   t  d d d d d d d t d t ƒ} | j d ƒ } | j d t d	 ƒ ƒ d
 k sZ t ‚ d  S(   Ns   <%s   %>s   <%=s   <%#R¤   R¥   sj   <%# I'm a comment, I'm not interesting %>
    <% for item in seq -%>
        <%= item %>
    <%- endfor %>R/   i   RR   (   R   RJ   R(   R)   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_erb_syntax_with_manual,  s
    	c         C   s^   t  d d d d d d d t d t ƒ} | j d ƒ } | j d t d	 ƒ ƒ d
 k sZ t ‚ d  S(   Ns   <%s   %>s   <%=s   <%#R¤   R¥   sk   <%# I'm a comment, I'm not interesting %>
    <%+ for item in seq -%>
        <%= item %>
    <%- endfor %>R/   i   s	       01234(   R   RJ   R(   R)   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   test_erb_syntax_no_lstrip6  s
    	c         C   s^   t  d d d d d d d t d t ƒ} | j d ƒ } | j d	 t d
 ƒ ƒ d k sZ t ‚ d  S(   Ns   <!--s   -->s   ${R.   s   <!--#R¤   R¥   sb   <!--# I'm a comment, I'm not interesting --><!-- for item in seq --->
    ${item}
<!--- endfor -->R/   i   RR   (   R   RJ   R(   R)   R1   R   (   R   R'   R*   (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyRU   @  s
    	(   R$   R%   R¦   R§   R¨   R©   Rª   R«   R¬   R­   R®   R¯   R°   R±   R´   Rµ   R¶   RS   R·   RT   R¸   R¹   RU   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR£   ¥  s*   															
	
	
		
	
c          C   s~   t  j ƒ  }  |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  j t  j t ƒ ƒ |  S(   N(	   t   unittestt	   TestSuitet   addTestt	   makeSuiteR   R&   RQ   Rd   R£   (   t   suite(    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyR¾   J  s    (   t   __doc__Rº   t   jinja2.testsuiteR    t   jinja2R   R   R   R   R   t   jinja2._compatR   R   R   R	   R<   R
   R   R   R   R   R'   R   R   R   R&   RQ   Rd   R£   R¾   (    (    (    s`   /var/www/send.findwatt.com/datamanager/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt   <module>
   s   ("(	Eo¹¥