8889841có ÈÏRc @ 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> /usr/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> /usr/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> /usr/lib/python2.7/site-packages/jinja2/testsuite/lexnparse.pyt test_iter3 s +( t __name__t __module__R R R R R R# ( ( ( s> /usr/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> /usr/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> /usr/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> /usr/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 t {R. sG