,Qc@sdZddlZddlmZddlmZmZmZmZm Z m Z ddl m Z eZ defdYZdefd YZd ZdS( s jinja2.testsuite.regression ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Tests corner cases and bugs. :copyright: (c) 2010 by the Jinja Team. :license: BSD, see LICENSE for more details. iN(t JinjaTestCase(tTemplatet Environmentt DictLoadertTemplateSyntaxErrortTemplateNotFoundt PrefixLoader(t text_typetCornerTestCasecBseZdZdZRS(cCs1tjd}tjd}tjd}dS(Nsv {%- for item in (1, 2, 3, 4) -%} [{{ item }}] {%- endfor %} {{- item -}} s {%- for item in (1, 2, 3, 4) -%} [{{ item }}] {%- endfor %} {%- set item = 42 %} {{- item -}} s {%- set item = 42 %} {%- for item in (1, 2, 3, 4) -%} [{{ item }}] {%- endfor %} {{- item -}} (tenvt from_string(tselftt((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_assigned_scopings   cCs1tjd}tjd}tjd}dS(Ns {%- set wrapper = "" %} {%- for item in (1, 2, 3, 4) %} {%- macro wrapper() %}[{{ item }}]{% endmacro %} {{- wrapper() }} {%- endfor %} {{- wrapper -}} s {%- for item in (1, 2, 3, 4) %} {%- macro wrapper() %}[{{ item }}]{% endmacro %} {{- wrapper() }} {%- endfor %} {%- set wrapper = "" %} {{- wrapper -}} s {%- for item in (1, 2, 3, 4) %} {%- macro wrapper() %}[{{ item }}]{% endmacro %} {{- wrapper() }} {%- endfor %} {{- wrapper -}} (R R (R R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_closure_scoping3s   (t__name__t __module__R R(((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyRs t BugTestCasecBseZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZRS(cCst}d|jdVsttesting(Rtfilters(R R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_keyword_foldingTs cCs/tdtidd6}|jd}dS(Ntloaders#(({% block title %}{% endblock %}))s parent.htmls{% if expr %}{% extends "parent.html" %}{% endif %}[[{% block title %}title{% endblock %}]]{% for item in [1, 2, 3] %}({{ item }}){% endfor %}(RRR (R R R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_extends_output_bugsZs cCstjd}dS(Ns*{{ "http://www.example.org/ {%- for user in users -%}
  • {{ user.username|e }}

    {{ caller(user) }}
  • {%- endfor -%} {%- endmacro -%} {% call(user) dump_users(list_of_user) -%}
    Realname
    {{ user.realname|e }}
    Description
    {{ user.description }}
    {% endcall %}(R(R R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_call_with_argss cCs=|jttd|jttd|jttddS(Ns{% if %}....{% endif %}s'{% if foo %}...{% elif %}...{% endif %}s{% for x in %}..{% endfor %}(RRR(R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_empty_if_condition_failsscCstd}td}dS(Ns3 {% for p in foo recursive%} {{p.bar}} {% for f in p.fields recursive%} {{f.baz}} {{p.bar}} {% if f.rec %} {{ loop(f.sub) }} {% endif %} {% endfor %} {% endfor %} s) {% for p in foo%} {{p.bar}} {% for f in p.fields recursive%} {{f.baz}} {{p.bar}} {% if f.rec %} {{ loop(f.sub) }} {% endif %} {% endfor %} {% endfor %} (R(R ttpl1ttpl2((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_recursive_loop_bugs  cCs2td}|j|jdgjddS(Ns {% for x in y %} {{ loop.index0 }} {% else %} {% for i in range(3) %}{{ i }}{% endfor %} {% endfor %} tyt012(Rt assertEqualR&R'(R R ((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_else_loop_bugs cCsMtdtitid6}y|jdWntk rH}nXdS(NRR%s foo/bar.html(RRRt get_templateR(R R te((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyttest_correct_prefix_loader_names csmddlmdtffdY}td}|jd|dd}d}|j||dS( Ni(tcontextfunctiont CallableClasscseZdZRS(cSs |jdS(Nthello(tresolve(R tctx((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyt__call__s(RRR;((R6(s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyR7ss{{ callableclass() }}t callableclassR8tTEST(t jinja2.utilsR6tobjectRR&t assert_equal(R R7ttpltoutputtexpected((R6s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyt%test_contextfunction_callable_classess  (RRRRRRR R!R"R$R)R*R+R.R2R5RD(((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyRRs          cCs<tj}|jtjt|jtjt|S(N(tunittestt TestSuitetaddTestt makeSuiteRR(tsuite((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyRIs (t__doc__REtjinja2.testsuiteRtjinja2RRRRRRtjinja2._compatRR RRRI(((s?/usr/lib/python2.7/site-packages/jinja2/testsuite/regression.pyt s . <