8889841có ÈÏRc@szdZddlZddlmZddlmZmZddlmZm Z eƒZ defd„ƒYZ d„Z dS( s» jinja2.testsuite.filters ~~~~~~~~~~~~~~~~~~~~~~~~ Tests for the jinja filters. :copyright: (c) 2010 by the Jinja Team. :license: BSD, see LICENSE for more details. iÿÿÿÿN(t JinjaTestCase(tMarkupt Environment(t text_typetimplements_to_stringtFilterTestCasecBs?eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„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.„Z0d/„Z1d0„Z2d1„Z3d2„Z4d3„Z5d4„Z6d5„Z7d6„Z8d7„Z9d8„Z:d9„Z;d:„Z<d;„Z=d<„Z>d=„Z?d>„Z@RS(?cCs/tjddddgƒ}|j|dƒdS(Ntsumiiii(tenvt call_filtert assert_equal(tselftrv((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_filter_callingscCs+tjdƒ}|jƒdks't‚dS(Ns{{ "foo bar"|capitalize }}sFoo bar(Rt from_stringtrendertAssertionError(R ttmpl((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_capitalizescCs+tjdƒ}|jƒdks't‚dS(Ns{{ "foo"|center(9) }}s foo (RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_centerscCs1tjdƒ}|jddƒdks-t‚dS(Nso{{ missing|default('no') }}|{{ false|default('no') }}|{{ false|default('no', true) }}|{{ given|default('no') }}tgiventyessno|False|no|yes(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_default"s cCsStjdƒ}|jdidd6dd6dd6d d 6ƒ}|d ksOt‚dS( NsN{{ foo|dictsort }}|{{ foo|dictsort(true) }}|{{ foo|dictsort(false, "value") }}tfooitaaitbitcitABs€[('aa', 0), ('AB', 3), ('b', 1), ('c', 2)]|[('AB', 3), ('aa', 0), ('b', 1), ('c', 2)]|[('aa', 0), ('b', 1), ('c', 2), ('AB', 3)](RR RR(R Rtout((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_dictsort)s .cCsCtjdƒ}|jdttdƒƒƒ}|dks?t‚dS(Ns4{{ foo|batch(3)|list }}|{{ foo|batch(3, 'X')|list }}Ri sW[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]|[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 'X', 'X']](RR RtlisttrangeR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_batch4scCsCtjdƒ}|jdttdƒƒƒ}|dks?t‚dS(Ns4{{ foo|slice(3)|list }}|{{ foo|slice(3, "X")|list }}Ri sS[[0, 1, 2, 3], [4, 5, 6], [7, 8, 9]]|[[0, 1, 2, 3], [4, 5, 6, 'X'], [7, 8, 9, 'X']](RR RRRR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_slice;scCs1tjdƒ}|jƒ}|dks-t‚dS(Ns{{ '<">&'|escape }}s<">&(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_escapeBs cCs7tjdƒ}|jddƒ}|dks3t‚dS(Ns{{ foo|striptags }}Rss

just a small example link

to a webpage

s&just a small example link to a webpage(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_striptagsGscCs/tjdƒ}|jƒ}|j|dƒdS(NsC{{ 100|filesizeformat }}|{{ 1000|filesizeformat }}|{{ 1000000|filesizeformat }}|{{ 1000000000|filesizeformat }}|{{ 1000000000000|filesizeformat }}|{{ 100|filesizeformat(true) }}|{{ 1000|filesizeformat(true) }}|{{ 1000000|filesizeformat(true) }}|{{ 1000000000|filesizeformat(true) }}|{{ 1000000000000|filesizeformat(true) }}sX100 Bytes|1.0 kB|1.0 MB|1.0 GB|1.0 TB|100 Bytes|1000 Bytes|976.6 KiB|953.7 MiB|931.3 GiB(RR RR (R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_filesizeformatNs   cCs/tjdƒ}|jƒ}|j|dƒdS(Nsô{{ 300|filesizeformat }}|{{ 3000|filesizeformat }}|{{ 3000000|filesizeformat }}|{{ 3000000000|filesizeformat }}|{{ 3000000000000|filesizeformat }}|{{ 300|filesizeformat(true) }}|{{ 3000|filesizeformat(true) }}|{{ 3000000|filesizeformat(true) }}s?300 Bytes|3.0 kB|3.0 MB|3.0 GB|3.0 TB|300 Bytes|2.9 KiB|2.9 MiB(RR RR (R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_filesizeformat_issue59as   cCsCtjdƒ}|jdttdƒƒƒ}|dks?t‚dS(Ns{{ foo|first }}Ri t0(RR RRRR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_firstsscCs1tjdƒ}|jƒ}|dks-t‚dS(Ns={{ "42"|float }}|{{ "ajsghasjgd"|float }}|{{ "32.32"|float }}s42.0|0.0|32.32(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_floatxs cCs1tjdƒ}|jƒ}|dks-t‚dS(Ns{{ "%s|%s"|format("a", "b") }}sa|b(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_formats cCs`tjdƒ}djdjddgdƒgdƒ}|jd|ƒ}|dks\t‚dS(Ns-{{ foo|indent(2) }}|{{ foo|indent(2, true) }}s t RtbarisEfoo bar foo bar foo bar foo bar| foo bar foo bar foo bar foo bar(RR tjoinRR(R RttextR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_indent„s)cCs1tjdƒ}|jƒ}|dks-t‚dS(Ns7{{ "42"|int }}|{{ "ajsghasjgd"|int }}|{{ "32.32"|int }}s42|0|32(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_int‹s cCsgtjdƒ}|jƒ}|dks-t‚tdtƒ}|jdƒ}|jƒdksct‚dS(Ns{{ [1, 2, 3]|join("|") }}s1|2|3t autoescapes-{{ ["", "foo"|safe]|join }}s<foo>foo(RR RRRtTrue(R RRtenv2((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_join‘s  cCsVdtfd„ƒY}tjdƒ}|jdt|ddgƒƒdksRt‚dS(NtUsercBseZd„ZRS(cSs ||_dS(N(tusername(R R4((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt__init__œs(t__name__t __module__R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3›ss"{{ users|join(', ', 'username') }}tusersRR*sfoo, bar(tobjectRR RtmapR(R R3R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_join_attributešscCsCtjdƒ}|jdttdƒƒƒ}|dks?t‚dS(Ns{{ foo|last }}Ri t9(RR RRRR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_last¡scCs1tjdƒ}|jƒ}|dks-t‚dS(Ns{{ "hello world"|length }}t11(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_length¦s cCs1tjdƒ}|jƒ}|dks-t‚dS(Ns{{ "FOO"|lower }}R(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_lower«s cCsYddlm}tjdƒ}ttdƒƒ}|jd|ƒ||ƒksUt‚dS(Niÿÿÿÿ(tpformats{{ data|pprint }}iètdata(tpprintRARR RRRR(R RARRB((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_pprint°scCs`tjdƒ}ttdƒƒ}x8tdƒD]*}t|jd|ƒƒ|ks.t‚q.WdS(Ns{{ seq|random }}idi tseq(RR RRtintRR(R RREt_((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_random¶scCs+tjdƒ}|jƒdks't‚dS(Ns8{{ "foobar"|reverse|join }}|{{ [1, 2, 3]|reverse|list }}sraboof|[3, 2, 1](RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_reverse¼scCsLdddddg}tjdƒ}|jd|ƒt|ƒksHt‚dS(Niiiiis{{ obj|string }}tobj(RR RRR(R txR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_stringÁscCstjdƒ}|jƒdks't‚tjdƒ}|jƒdksNt‚tjdƒ}|jƒdksut‚tjdƒ}|jƒdksœt‚tjd ƒ}|jƒd ksÃt‚tjd ƒ}|jƒd ksêt‚tjd ƒ}|jƒd kst‚dS(Ns{{ "foo bar"|title }}sFoo Bars{{ "foo's bar"|title }}s Foo's Bars{{ "foo bar"|title }}s Foo Bars{{ "f bar f"|title }}sF Bar Fs{{ "foo-bar"|title }}sFoo-Bars{{ "foo bar"|title }}sFoo Bars{{ "FOO BAR"|title }}(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_titleÆscCsAtjdƒ}|jdddddƒ}|dks=t‚dS(Nsg{{ data|truncate(15, true, ">>>") }}|{{ data|truncate(15, false, ">>>") }}|{{ smalldata|truncate(15) }}RBsfoobar baz barièt smalldatas0foobar baz barf>>>|foobar baz >>>|foobar baz bar(RR RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_truncateÖs   cCs+tjdƒ}|jƒdks't‚dS(Ns{{ "foo"|upper }}tFOO(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_upperàscCs+tjdƒ}|jƒdks't‚dS(Ns.{{ "foo http://www.example.com/ bar"|urlize }}sEfoo http://www.example.com/ bar(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_urlizeäscCs+tjdƒ}|jƒdks't‚dS(Ns{{ "foo bar baz"|wordcount }}t3(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_wordcountéscCs+tjdƒ}|jƒdks't‚dS(Ns.{% filter lower|escape %}{% endfilter %}s <hehe>(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_blockíscCs+tjdƒ}|jƒdks't‚dS(Ns+{{ ['', '']|first|upper|escape }}s <FOO>(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_chainingñscCs+tjdƒ}|jƒdks't‚dS(Ns{{ [1, 2, 3, 4, 5, 6]|sum }}t21(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_sumõscCsOtjdƒ}|jdidd6idd6idd6gƒdksKt‚dS(Ns{{ values|sum('value') }}tvaluesitvalueiit42(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_sum_attributesùs    cCsdtjdƒ}|jdiidd6d6iidd6d6iidd6d6gƒdks`t‚dS( Ns{{ values|sum('real.value') }}RYiRZtrealiiR[(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_sum_attributes_nesteds  cCsFtjdƒ}|jdidd6dd6dd6ƒd ksBt‚dS( Ns{{ values.items()|sum('1') }}RYiRiR*itbazR[(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_sum_attributes_tuple s   cCs7tjdƒ}|jƒdks3t|jƒƒ‚dS(Ns{{ -1|abs }}|{{ 1|abs }}s1|1(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_absscCs7tjdƒ}|jƒdks3t|jƒƒ‚dS(NsY{{ 2.7|round }}|{{ 2.1|round }}|{{ 2.1234|round(3, 'floor') }}|{{ 2.1|round(0, 'ceil') }}s3.0|2.0|2.123|3.0(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_round_positivescCs7tjdƒ}|jƒdks3t|jƒƒ‚dS(NsL{{ 21.3|round(-1)}}|{{ 21.3|round(-1, 'ceil')}}|{{ 21.3|round(-1, 'floor')}}s20.0|30.0|20.0(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_round_negativescCsstjdƒ}|jƒjƒ}t|ƒdks9t‚d|ksKt‚d|ks]t‚d|ksot‚dS(NsW{{ {'foo': 42, 'bar': 23, 'fish': none, 'spam': missing, 'blub:blub': ''}|xmlattr }}isfoo="42"sbar="23"sblub:blub="<?>"(RR RtsplittlenR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_xmlattr!s cCs+tjdƒ}|jƒdks't‚dS(Ns/{{ [2, 3, 1]|sort }}|{{ [2, 3, 1]|sort(true) }}s[1, 2, 3]|[3, 2, 1](RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_sort1*scCs+tjdƒ}|jƒdks't‚dS(Ns({{ "".join(["c", "A", "b", "D"]|sort) }}tAbcD(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_sort2.scCs+tjdƒ}|jƒdks't‚dS(Ns!{{ ['foo', 'Bar', 'blah']|sort }}s['Bar', 'blah', 'foo'](RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_sort32scCsbtdtfd„ƒYƒ}tjdƒ}|jdt|ddddgƒƒd ks^t‚dS( NtMagiccBseZd„Zd„ZRS(cSs ||_dS(N(RZ(R RZ((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR59scSs t|jƒS(N(RRZ(R ((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt__str__;s(R6R7R5Rl(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyRk7s s({{ items|sort(attribute='value')|join }}titemsiiiit1234(RR9RR RR:R(R RkR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_sort46scCs@tjdƒ}|jƒjdƒddddgks<t‚dS(Ns] {%- for grouper, list in [{'foo': 1, 'bar': 2}, {'foo': 2, 'bar': 3}, {'foo': 1, 'bar': 1}, {'foo': 3, 'bar': 4}]|groupby('foo') -%} {{ grouper }}{% for x in list %}: {{ x.foo }}, {{ x.bar }}{% endfor %}| {%- endfor %}t|s 1: 1, 2: 1, 1s2: 2, 3s3: 3, 4t(RR RRdR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_groupby@s cCs+tjdƒ}|jƒdks't‚dS(Ns© {%- for grouper, list in [('a', 1), ('a', 2), ('b', 1)]|groupby(0) -%} {{ grouper }}{% for x in list %}:{{ x.1 }}{% endfor %}| {%- endfor %}s a:1:2|b:1|(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_groupby_tuple_indexOs csÃdtfd„ƒY‰dtf‡fd†ƒY}|ddddƒ|dd ddƒ|d d ddƒ|d ddd ƒg}tjdƒ}|jd|ƒjdƒdddgks¿t‚dS(NtDatecBseZd„ZRS(cSs||_||_||_dS(N(tdaytmonthtyear(R RuRvRw((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5Xs  (R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyRtWstArticlecseZ‡fd†ZRS(csˆ|Œ|_||_dS(N(tdatettitle(R RzRy(Rt(s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5]s(R6R7R5((Rt(s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyRx\stahaii²t interestingisreally?is totally noti³sœ {%- for year, list in articles|groupby('date.year') -%} {{ year }}{% for x in list %}[{{ x.title }}]{% endfor %}| {%- endfor %}tarticlesRps1970[aha][interesting][really?]s1971[totally not]Rq(R9RR RRdR(R RxR}R((Rts</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_groupby_multidotVs cCs+tjdƒ}|jƒdks't‚dS(Ns={% filter upper|replace('FOO', 'foo') %}foobar{% endfilter %}tfooBAR(RR RR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_filtertagpscCsÖtƒ}|jdƒ}|jddƒdks6t‚tdtƒ}|jdƒ}|jddƒdksrt‚|jdƒ}|jddƒdksŸt‚|jd ƒ}|jdtd ƒƒd ksÒt‚dS( Ns{{ string|replace("o", 42) }}tstringssR/s <f4242>s{{ string|replace("<", 42) }}s 42foo>s {{ string|replace("o", ">x<") }}Rsf>x<>x<(RR RRR0R(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_replaceus cCs7tjdƒ}|jdtdƒƒdks3t‚dS(Ns{{ x|forceescape }}RKs
u <div />(RR RRR(R R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_forceescapescCsatdtƒ}|jdƒ}|jƒdks6t‚|jdƒ}|jƒdks]t‚dS(NR/s{{ "
foo
"|safe }}s
foo
s{{ "
foo
" }}s<div>foo</div>(RR0R RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt test_safe…s cCstdtƒ}|jdƒ}|jƒdks6t‚|jdƒ}|jddƒdksct‚|jddƒd kst‚|jdddfƒd ks¥t‚|jddƒdksÃt‚|jdid d6ƒdksèt‚|jdid d6ƒdks t‚dS(NR/s{{ "Hello, world!"|urlencode }}sHello%2C%20world%21s{{ o|urlencode }}touHello, world‽sHello%2C%20world%E2%80%BDtfisf=1tzis f=1&z=2u‽s %E2%80%BD=1is0=1(R†i((R†i(R†i(R‡i(u‽i((u‽i(RR0R RR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_urlencodeŒs$%cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns${{ ["1", "2", "3"]|map("int")|sum }}t6(RR t assertEqualR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_simple_map˜s cCsodtfd„ƒY}tƒ}|dƒ|dƒ|dƒg}|jdƒ}|j|jd|ƒdƒdS( NR3cBseZd„ZRS(cSs ||_dS(N(tname(R RŒ((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5Ÿs(R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3žstjohntjanetmikes+{{ users|map(attribute="name")|join("|") }}R8sjohn|jane|mike(R9RR RŠR(R R3RR8R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_attribute_maps   cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns{{ none|map("upper")|list }}s[](RR RŠR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_empty_mapªs cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns-{{ [1, 2, 3, 4, 5]|select("odd")|join("|") }}s1|3|5(RR RŠR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_simple_select¯s cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns6{{ [none, false, 0, 1, 2, 3, 4, 5]|select|join("|") }}s 1|2|3|4|5(RR RŠR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_bool_select´s cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns-{{ [1, 2, 3, 4, 5]|reject("odd")|join("|") }}s2|4(RR RŠR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_simple_reject¹s cCs2tƒ}|jdƒ}|j|jƒdƒdS(Ns6{{ [none, false, 0, 1, 2, 3, 4, 5]|reject|join("|") }}s None|False|0(RR RŠR(R RR((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_bool_reject¾s cCsxdtfd„ƒY}tƒ}|dtƒ|dtƒ|dtƒg}|jdƒ}|j|jd|ƒdƒdS( NR3cBseZd„ZRS(cSs||_||_dS(N(RŒt is_active(R RŒR–((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5Ås (R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3ÄsRRŽRsC{{ users|selectattr("is_active")|map(attribute="name")|join("|") }}R8s john|jane(R9RR0tFalseR RŠR(R R3RR8R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_simple_select_attrÃs   cCsxdtfd„ƒY}tƒ}|dtƒ|dtƒ|dtƒg}|jdƒ}|j|jd|ƒdƒdS(NR3cBseZd„ZRS(cSs||_||_dS(N(RŒR–(R RŒR–((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5Ôs (R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3ÓsRRŽRsC{{ users|rejectattr("is_active")|map(attribute="name")|join("|") }}R8(R9RR0R—R RŠR(R R3RR8R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_simple_reject_attrÒs   cCsxdtfd„ƒY}tƒ}|ddƒ|ddƒ|ddƒg}|jd ƒ}|j|jd |ƒd ƒdS( NR3cBseZd„ZRS(cSs||_||_dS(N(tidRŒ(R RšRŒ((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5ãs (R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3âsiRiRŽiRsC{{ users|selectattr("id", "odd")|map(attribute="name")|join("|") }}R8s john|mike(R9RR RŠR(R R3RR8R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_func_select_attrás   cCsxdtfd„ƒY}tƒ}|ddƒ|ddƒ|ddƒg}|jd ƒ}|j|jd |ƒdƒdS( NR3cBseZd„ZRS(cSs||_||_dS(N(RšRŒ(R RšRŒ((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR5òs (R6R7R5(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR3ñsiRiRŽiRsC{{ users|rejectattr("id", "odd")|map(attribute="name")|join("|") }}R8(R9RR RŠR(R R3RR8R((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyttest_func_reject_attrðs   (AR6R7R RRRRRR R!R"R#R$R&R'R(R-R.R2R;R=R?R@RDRHRIRLRMRORQRRRTRURVRXR\R^R`RaRbRcRfRgRiRjRoRrRsR~R€R‚RƒR„RˆR‹RR‘R’R“R”R•R˜R™R›Rœ(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyRs~                                                      cCs&tjƒ}|jtjtƒƒ|S(N(tunittestt TestSuitetaddTestt makeSuiteR(tsuite((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyR¡s ( t__doc__Rtjinja2.testsuiteRtjinja2RRtjinja2._compatRRRRR¡(((s</usr/lib/python2.7/site-packages/jinja2/testsuite/filters.pyt s  ÿí