Viewing File: /usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyc


Rc@sdZddlZddlZddlmZddlmZmZmZm	Z	ddl
mZddlm
Z
ddlmZmZddlmZmZmZmZd	Zejd
Zidd6d
d6dd6dd6dd6Zidd6d
d6dd6dd6dd6dd6dd6dd6dd6d d!6d"d#6d$d%6Ziid&d'6d(d)6d*d+6d,d-6d.d/6d0d16d2d36d4d56d66Zed7Zed8Zed9eed:d;gZejj ied<6ed=6ed>6ed9eed:d;gZ!e!j"eed?e#d@e
fdAYZ$dBe
fdCYZ%dDe
fdEYZ&dFefdGYZ'dHefdIYZ(dJefdKYZ)dLefdMYZ*dNZ+dS(Os
    jinja2.testsuite.ext
    ~~~~~~~~~~~~~~~~~~~~

    Tests for the extensions.

    :copyright: (c) 2010 by the Jinja Team.
    :license: BSD, see LICENSE for more details.
iN(t
JinjaTestCase(tEnvironmentt
DictLoadertcontextfunctiontnodes(tTemplateAssertionError(t	Extension(tTokentcount_newlines(tnexttBytesIOt
itervaluest	text_typeis_\((.*?)\)(?s)sS<title>{{ page_title|default(_("missing")) }}</title>{% block body %}{% endblock %}smaster.htmls[{% extends "master.html" %}{% block body %}{% trans %}watch out{% endtrans %}{% endblock %}s
child.htmls_{% trans user_count %}One user online{% pluralize %}{{ user_count }} users online{% endtrans %}splural.htmlsf{% trans user_count=get_user_count() %}{{ user_count }}s{% pluralize %}{{ user_count }}p{% endtrans %}splural2.htmls/{{ _("User: %(num)s")|format(num=user_count) }}sstringformat.htmls({{ _("User: %(num)s", num=user_count) }}s9{{ ngettext("%(num)s apple", "%(num)s apples", apples) }}s
ngettext.htmlsR{% trans num=apples %}{{ num }} apple{% pluralize %}{{ num }} apples{% endtrans %}sngettext_long.htmls({% trans %}User: {{ num }}{% endtrans %}stransvars1.htmls2{% trans num=count %}User: {{ num }}{% endtrans %}stransvars2.htmls4{% trans count=num %}User: {{ count }}{% endtrans %}stransvars3.htmls"{% trans %}%(hello)s{% endtrans %}snovars.htmls){% trans %}{{ foo }}%(foo)s{% endtrans %}s	vars.htmls){% trans foo="42" %}%(foo)s{% endtrans %}sexplicitvars.htmlufehlendtmissingupass aufs	watch outuEin Benutzer onlinesOne user onlineu%(user_count)s Benutzer onlines%(user_count)s users onlineuBenutzer: %(num)ss
User: %(num)suBenutzer: %(count)ssUser: %(count)su
%(num)s Apfels
%(num)s appleu%(num)s Äpfels%(num)s applestdecCs.|jdd}tj|ij||S(NtLANGUAGEten(tgett	languages(tcontexttstringtlanguage((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pytgettextIscCsV|jdd}|dkr:tj|ij||Stj|ij||S(NRRi(RR(RtstptnR((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pytngettextOstloadert
extensionssjinja2.ext.i18nt_RRtnewstylet
TestExtensioncBs/eZedgZdZdZdZRS(ttesti*cCsbtj|jdtjd|jdtjtdtjggjt	|j
jS(Nt_dumpt	sandboxedtext_attrs.importable_object(RtOutputtcall_methodtEnvironmentAttributetattrtImportedNamet__name__tContextReferencet
set_linenoR	tstreamtlineno(tselftparser((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pytparsekscCsd||||jfS(Ns%s|%s|%s|%s(tblocks(R.R"R#timported_objectR((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR!ss
(R)t
__module__tsetttagsR#R0R!(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRgs	tPreprocessorExtensioncBseZddZRS(cCs|jddS(Ns[[TEST]]s({{ foo }})(treplace(R.tsourcetnametfilename((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt
preprocess~sN(R)R3tNoneR;(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR6|stStreamFilterExtensioncBseZdZdZRS(ccsKxD|D]<}|jdkr>x$|j|D]}|Vq,Wq|VqWdS(Ntdata(ttypetinterpolate(R.R,ttokentt((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt
filter_streams

ccs2d}t|j}|j}xtj|j|}|dkrFPn|j||j!}|rvt|d|Vn|t|j7}t|ddVt|ddVt|ddVt|d|j	dVt|d	dVt|d
dV|j
}q!||kr.t|d|j|VndS(NiR>tvariable_beginR9RtlparenRitrparentvariable_end(tlentvalueR-t_gettext_retsearchR<tstartRRtgrouptend(R.RAtposRNR-tmatchRI((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR@s(	(R)R3RCR@(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR=s	tExtensionsTestCasecBsbeZdZdZdZdZdZdZdZdZ	dZ
d	ZRS(
cCsAt}|jd|jd}|jdks=tdS(Nsjinja2.ext.autoescapes6{% autoescape true %}{{ "<test>" }}{% endautoescape %}s&lt;test&gt;(Rt
add_extensiontfrom_stringtrendertAssertionError(R.tenvRB((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_extend_lates	
cCsdtddg}|jd}|jdks9t|jd}|jdks`tdS(NRsjinja2.ext.loopcontrolss
            {%- for item in [1, 2, 3, 4] %}
                {%- if item % 2 == 0 %}{% continue %}{% endif -%}
                {{ item }}
            {%- endfor %}t13s
            {%- for item in [1, 2, 3, 4] %}
                {%- if item > 2 %}{% break %}{% endif -%}
                {{ item }}
            {%- endfor %}t12(RRSRTRU(R.RVttmpl((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_loop_controlss		cCs=tddg}|jd}|jdks9tdS(NRs
jinja2.ext.dos
            {%- set items = [] %}
            {%- for char in "foo" %}
                {%- do items.append(loop.index0 ~ char) %}
            {%- endfor %}{{ items|join(', ') }}s
0f, 1o, 2o(RRSRTRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_dos	cCsntddg}|jd}g|jddddjD]}|j^q@dd	gksjtdS(
NRsjinja2.ext.with_sy        {% with a=42, b=23 -%}
            {{ a }} = {{ b }}
        {% endwith -%}
            {{ a }} = {{ b }}        taitbis42 = 23s1 = 2(RRSRTt
splitlineststripRU(R.RVRZtx((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt	test_withs
	4cCs=tdtg}|jd}|jdks9tdS(NRs
{% test %}sFalse|42|23|{}(RRRSRTRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_extension_nodesscCstjtdkstdS(Ns.TestExtension(Rt
identifierR)RU(R.((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_identifierscCshtdtg}|j}xC||fD]5}x,t|jD]}|j|ksAtqAWq+WdS(NR(RRtoverlayRRtenvironmentRU(R.toriginalRfRVtext((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_rebindings
cCsCtdtg}|jd}|jdddks?tdS(NRs
{[[TEST]]}tfooi*s{(42)}(RR6RSRTRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_preprocessor_extensionscCsStdtg}d|jd<|jd}|j}|dksOtdS(NRcSs
|jS(N(tupper(Ra((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt<lambda>sRsFoo _(bar) BazsFoo BAR Baz(RR=tglobalsRSRTRU(R.RVRZtout((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_streamfilter_extensions
cCsdtfdY}dtfdY}td||g}t|j}|dj|kslt|dj|kstdS(NtT1cBseZdZRS(i(R)R3tpriority(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRrstT2cBseZdZRS(i(R)R3Rs(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRtsRii(RRtlisttiter_extensionst	__class__RU(R.RrRtRVRi((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_extension_orderings(R)R3RWR[R\RbRcReRjRlRqRx(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRQs										tInternationalizationTestCasecBsGeZdZdZdZdZdZdZdZRS(cCs1tjd}|jdddks-tdS(Ns
child.htmlRRs<title>fehlend</title>pass auf(ti18n_envtget_templateRTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt
test_transscCs[tjd}|jdddddks3t|jdddddksWtdS(	Nsplural.htmlRRt
user_countisEin Benutzer onlineis2 Benutzer online(RzR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_trans_plurals$csdtjd}fdd_|jddddksKtjdks`tdS(	Nsplural2.htmlcsjd7_dS(Ni(tcalled((tget_user_count(s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRsiRRRt1si(RzR{RRTRU(R.RZ((Rs8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt test_trans_plural_with_functionss
	$cCsAtjd}|jdks't|jttjddS(Ns_{% trans foo=42, count=2 %}{{ count }} item{% pluralize count %}{{ count }} items{% endtrans %}s2 itemss6{% trans foo %}...{% pluralize bar %}...{% endtrans %}(RzRSRTRUt
assert_raisesR(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_complex_plural
scCs7tjd}|jdddddks3tdS(Nsstringformat.htmlRRR}isBenutzer: 5(RzR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_trans_stringformattingscCs}ddlm}tdjd}t||dgiddd	gfd
dd	gfdddgfgksytdS(Ni(t
babel_extracts
        {{ gettext('Hello World') }}
        {% trans %}Hello World{% endtrans %}
        {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %}
        tasciiRRRiuHello Worldiiu%(users)s useru%(users)s users(sgettextsngettextR(u%(users)s useru%(users)s usersN(t
jinja2.extRR
tencodeRuR<RU(R.RR8((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_extractscCsddlm}tdjd}t||ddd	gid
dddgfd
dddgfddddgfgkstdS(Ni(Rs
        {# trans first #}
        {{ gettext('Hello World') }}
        {% trans %}Hello World{% endtrans %}{# trans second #}
        {#: third #}
        {% trans %}{{ users }} user{% pluralize %}{{ users }} users{% endtrans %}
        sutf-8RRRttranst:iuHello Worldtfirstitsecondiu%(users)s useru%(users)s userstthird(sgettextsngettextR(u%(users)s useru%(users)s usersN(RRR
RRuR<RU(R.RR8((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_comment_extract"s(	R)R3R|R~RRRRR(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRys							
t$NewstyleInternationalizationTestCasecBsbeZdZdZdZdZdZdZdZdZ	dZ
d	ZRS(
cCs1tjd}|jdddks-tdS(Ns
child.htmlRRs<title>fehlend</title>pass auf(tnewstyle_i18n_envR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR|4scCs[tjd}|jdddddks3t|jdddddksWtdS(	Nsplural.htmlRRR}isEin Benutzer onlineis2 Benutzer online(RR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR~8s$cCsAtjd}|jdks't|jttjddS(Ns_{% trans foo=42, count=2 %}{{ count }} item{% pluralize count %}{{ count }} items{% endtrans %}s2 itemss6{% trans foo %}...{% pluralize bar %}...{% endtrans %}(RRSRTRURRRz(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR=scCs7tjd}|jdddddks3tdS(Nsstringformat.htmlRRR}isBenutzer: 5(RR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRDscCs[tjd}|jdddddks3t|jdddddksWtdS(	Ns
ngettext.htmlRRtapplesis1 Apfeliu5 Äpfel(RR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_newstyle_pluralHs$cCstdddg}|jdddt|jd}|jdtd	ks^t|jdtd
ks|tdS(NRsjinja2.ext.autoescapesjinja2.ext.i18ncSsdS(Nu<strong>Wert: %(name)s</strong>((Ra((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRnPscSs|S(N((RRR((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRnQsRsI{% autoescape ae %}{{ gettext("foo", name="<test>") }}{% endautoescape %}taes#<strong>Wert: &lt;test&gt;</strong>s<strong>Wert: <test></strong>(Rtinstall_gettext_callablestTrueRSRTRUtFalse(R.RVRB((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_autoescape_supportMs	cCs7tjd}|jdddddks3tdS(Nsngettext_long.htmlRiRRu5 Äpfel(RR{RTRU(R.RZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_num_used_twiceWscCs7tjddt}tjd|dk	s3tdS(Nso
            {% trans num=3 %}{{ num }} apple{% pluralize
            %}{{ num }} apples{% endtrans %}
        traws:l_ngettext, u?'\%\(num\)s apple', u?'\%\(num\)s apples', 3(RtcompileRtreRKR<RU(R.R8((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_num_called_num[s	cCstjd}tjd}tjd}|jdddddksQt|jd	d
dddksut|jddddd
kstdS(Nstransvars1.htmlstransvars2.htmlstransvars3.htmltnumiRRsBenutzer: 1tcountisBenutzer: 23i*sBenutzer: 42(RR{RTRU(R.tt1tt2tt3((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_trans_varsgs$$cCstjd}|jdks'ttjd}|jdddksTttjd}|jdks{tdS(	Nsnovars.htmls	%(hello)ss	vars.htmlRkt42s	42%(foo)ssexplicitvars.htmls%(foo)s(RR{RTRU(R.RB((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_novars_vars_escapingos(R)R3R|R~RRRRRRRR(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyR2s						
			tAutoEscapeTestCasecBs5eZdZdZdZdZdZRS(cCstddgdt}|jd}|jjdddgksNttddgdt}|jd}|jjdddgkstdS(NRsjinja2.ext.autoescapet
autoescapes
            {{ "<HelloWorld>" }}
            {% autoescape false %}
                {{ "<HelloWorld>" }}
            {% endautoescape %}
            {{ "<HelloWorld>" }}
        u&lt;HelloWorld&gt;u<HelloWorld>s
            {{ "<HelloWorld>" }}
            {% autoescape true %}
                {{ "<HelloWorld>" }}
            {% endautoescape %}
            {{ "<HelloWorld>" }}
        (RRRSRTtsplitRUR(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_scoped_settingzs				cCsjtddgdt}|jd}|jdks?t|jd}|jdksftdS(NRsjinja2.ext.autoescapeRs&{{ {"foo": "<test>"}|xmlattr|escape }}s foo="&lt;test&gt;"sO{% autoescape false %}{{ {"foo": "<test>"}|xmlattr|escape }}{% endautoescape %}s# foo=&#34;&amp;lt;test&amp;gt;&#34;(RRRSRTRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_nonvolatiles	cCsgtddgdt}|jd}|jdtdksEt|jdtdksctdS(NRsjinja2.ext.autoescapeRsM{% autoescape foo %}{{ {"foo": "<test>"}|xmlattr|escape }}{% endautoescape %}Rks# foo=&#34;&amp;lt;test&amp;gt;&#34;s foo="&lt;test&gt;"(RRRSRTRRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt
test_volatiles
	cCsCtddg}|jd}|jdddks?tdS(NRsjinja2.ext.autoescapesT{% autoescape true %}{% set x = "<x>" %}{{ x }}{% endautoescape %}{{ x }}{{ "<y>" }}Rais
&lt;x&gt;1<y>(RRSRTRU(R.RVRZ((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_scopingscCstddg}d}|j|}|jdtjddksOt|jdtjdtjkszttddg}|j	|dt}d|ksttddgd	t}|j	|dt}d
|kstdS(NRsjinja2.ext.autoescapes
        {% autoescape val %}
            {% macro foo(x) %}
                [{{ x }}]
            {% endmacro %}
            {{ foo().__class__.__name__ }}
        {% endautoescape %}
        {{ '<testing>' }}
        tvalitMarkupRs<testing>\nRs&lt;testing&gt;\n(
RRSRTRRRURRR)R(R.RVt
tmplsourceRZtpysource((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyttest_volatile_scopings	(+	(R)R3RRRRR(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRxs
					cCshtj}|jtjt|jtjt|jtjt|jtjt|S(N(tunittestt	TestSuitetaddTestt	makeSuiteRQRyRR(tsuite((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyRs(,t__doc__RRtjinja2.testsuiteRtjinja2RRRRtjinja2.exceptionsRRRtjinja2.lexerRRtjinja2._compatR	R
RRtimportable_objectRRJti18n_templatestnewstyle_i18n_templatesRRRRzRotupdateRRRRR6R=RQRyRRR(((s8/usr/lib/python2.7/site-packages/jinja2/testsuite/ext.pyt<module>
sx""

!S<FM
Back to Directory File Manager