8889841có ,ņQc@s¢dZddlZddlmZddlmZmZmZmZm Z m Z ddl m Z eƒZ defd„ƒYZdefd „ƒ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. i’’’’N(t JinjaTestCase(tTemplatet Environmentt DictLoadertTemplateSyntaxErrortTemplateNotFoundt PrefixLoader(t text_typetCornerTestCasecBseZd„Zd„ZRS(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 BugTestCasecBseZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„ZRS(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_args°s cCs=|jttdƒ|jttdƒ|jttdƒdS(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_failsŠscCstdƒ}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_bugÕs  cCs2tdƒ}|j|jdgƒjƒdƒdS(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_bugšs cCsMtdtitiƒd6ƒƒ}y|jdƒWntk 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_nameśs csmddlm‰dtf‡fd†ƒY}tdƒ}|jd|ƒddƒ}d}|j||ƒdS( Ni’’’’(tcontextfunctiont CallableClasscseZˆd„ƒZRS(cSs |jdƒS(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 . <Į