Lines Matching refs:env
21 def test_simple(self, env): argument
35 def test_iter(self, env): argument
44 def test_raw1(self, env): argument
45 tmpl = env.from_string(
51 def test_raw2(self, env): argument
52 tmpl = env.from_string("1 {%- raw -%} 2 {%- endraw -%} 3")
55 def test_raw3(self, env): argument
58 env = Environment(lstrip_blocks=True, trim_blocks=True)
59 tmpl = env.from_string("bar\n{% raw %}\n {{baz}}2 spaces\n{% endraw %}\nfoo")
62 def test_raw4(self, env): argument
65 env = Environment(lstrip_blocks=True, trim_blocks=False)
66 tmpl = env.from_string(
71 def test_balancing(self, env): argument
72 env = Environment("{%", "%}", "${", "}")
73 tmpl = env.from_string(
79 def test_comments(self, env): argument
80 env = Environment("<!--", "-->", "{", "}")
81 tmpl = env.from_string(
93 def test_string_escapes(self, env): argument
95 tmpl = env.from_string(f"{{{{ {char!r} }}}}")
97 assert env.from_string('{{ "\N{HOT SPRINGS}" }}').render() == "\u2668"
99 def test_bytefallback(self, env): argument
102 tmpl = env.from_string("""{{ 'foo'|pprint }}|{{ 'bär'|pprint }}""")
105 def test_operators(self, env): argument
111 stream = env.lexer.tokenize(f"{{{{ {test} }}}}")
115 def test_normalizing(self, env): argument
117 env = Environment(newline_sequence=seq)
118 tmpl = env.from_string("1\n2\r\n3\n4\n")
122 def test_trailing_newline(self, env): argument
124 env = Environment(keep_trailing_newline=keep)
131 tmpl = env.from_string(template)
157 def test_name(self, env, name, valid): argument
162 env.from_string(t)
164 pytest.raises(TemplateSyntaxError, env.from_string, t)
166 def test_lineno_with_strip(self, env): argument
167 tokens = env.lex(
186 def test_php_syntax(self, env): argument
187 env = Environment("<?", "?>", "<?=", "?>", "<!--", "-->")
188 tmpl = env.from_string(
197 def test_erb_syntax(self, env): argument
198 env = Environment("<%", "%>", "<%=", "%>", "<%#", "%>")
199 tmpl = env.from_string(
208 def test_comment_syntax(self, env): argument
209 env = Environment("<!--", "-->", "${", "}", "<!--#", "-->")
210 tmpl = env.from_string(
219 def test_balancing(self, env): argument
220 tmpl = env.from_string("""{{{'foo':'bar'}.foo}}""")
223 def test_start_comment(self, env): argument
224 tmpl = env.from_string(
232 def test_line_syntax(self, env): argument
233 env = Environment("<%", "%>", "${", "}", "<%#", "%>", "%")
234 tmpl = env.from_string(
245 env = Environment("<%", "%>", "${", "}", "<%#", "%>", "%", "##")
246 tmpl = env.from_string(
257 def test_line_syntax_priority(self, env): argument
259 env = Environment("{%", "%}", "${", "}", "/*", "*/", "##", "#")
260 tmpl = env.from_string(
269 env = Environment("{%", "%}", "${", "}", "/*", "*/", "#", "##")
270 tmpl = env.from_string(
281 def test_error_messages(self, env): argument
319 def test_call(self, env): argument
320 env = Environment()
321 env.globals["foo"] = lambda a, b, c, e, g: a + b + c + e + g
322 tmpl = env.from_string("{{ foo('a', c='d', e='f', *['b'], **{'g': 'h'}) }}")
325 def test_slicing(self, env): argument
326 tmpl = env.from_string("{{ [1, 2, 3][:] }}|{{ [1, 2, 3][::-1] }}")
329 def test_attr(self, env): argument
330 tmpl = env.from_string("{{ foo.bar }}|{{ foo['bar'] }}")
333 def test_subscript(self, env): argument
334 tmpl = env.from_string("{{ foo[0] }}|{{ foo[-1] }}")
337 def test_tuple(self, env): argument
338 tmpl = env.from_string("{{ () }}|{{ (1,) }}|{{ (1, 2) }}")
341 def test_math(self, env): argument
342 tmpl = env.from_string("{{ (1 + 1 * 2) - 3 / 2 }}|{{ 2**3 }}")
345 def test_div(self, env): argument
346 tmpl = env.from_string("{{ 3 // 2 }}|{{ 3 / 2 }}|{{ 3 % 2 }}")
349 def test_unary(self, env): argument
350 tmpl = env.from_string("{{ +3 }}|{{ -3 }}")
353 def test_concat(self, env): argument
354 tmpl = env.from_string("{{ [1, 2] ~ 'foo' }}")
368 def test_compare(self, env, a, op, b): argument
369 t = env.from_string(f"{{{{ {a} {op} {b} }}}}")
372 def test_compare_parens(self, env): argument
373 t = env.from_string("{{ i * (j < 5) }}")
387 def test_compare_compound(self, env, src, expect): argument
388 t = env.from_string(src)
391 def test_inop(self, env): argument
392 tmpl = env.from_string("{{ 1 in [1, 2, 3] }}|{{ 1 not in [1, 2, 3] }}")
396 def test_collection_literal(self, env, value): argument
397 t = env.from_string(f"{{{{ {value} }}}}")
417 def test_numeric_literal(self, env, value, expect): argument
418 t = env.from_string(f"{{{{ {value} }}}}")
421 def test_bool(self, env): argument
422 tmpl = env.from_string(
427 def test_grouping(self, env): argument
428 tmpl = env.from_string(
433 def test_django_attr(self, env): argument
434 tmpl = env.from_string("{{ [1, 2, 3].0 }}|{{ [[1]].0.0 }}")
437 def test_conditional_expression(self, env): argument
438 tmpl = env.from_string("""{{ 0 if true else 1 }}""")
441 def test_short_conditional_expression(self, env): argument
442 tmpl = env.from_string("<{{ 1 if false }}>")
445 tmpl = env.from_string("<{{ (1 if false).bar }}>")
448 def test_filter_priority(self, env): argument
449 tmpl = env.from_string('{{ "foo"|upper + "bar"|upper }}')
452 def test_function_calls(self, env): argument
473 env.from_string(f"{{{{ foo({sig}) }}}}")
475 env.from_string(f"foo({sig})")
477 def test_tuple_expr(self, env): argument
488 assert env.from_string(tmpl)
490 def test_trailing_comma(self, env): argument
491 tmpl = env.from_string("{{ (1, 2,) }}|{{ [1, 2,] }}|{{ {1: 2,} }}")
494 def test_block_end_name(self, env): argument
495 env.from_string("{% block foo %}...{% endblock foo %}")
497 TemplateSyntaxError, env.from_string, "{% block x %}{% endblock y %}"
500 def test_constant_casing(self, env): argument
503 tmpl = env.from_string(
508 def test_test_chaining(self, env): argument
510 TemplateSyntaxError, env.from_string, "{{ foo is string is sequence }}"
512 assert env.from_string("{{ 42 is string or 42 is number }}").render() == "True"
514 def test_string_concatenation(self, env): argument
515 tmpl = env.from_string('{{ "foo" "bar" "baz" }}')
518 def test_notin(self, env): argument
520 tmpl = env.from_string("""{{ not 42 in bar }}""")
523 def test_operator_precedence(self, env): argument
524 tmpl = env.from_string("""{{ 2 * 3 + 4 % 2 + 1 - 2 }}""")
527 def test_implicit_subscribed_tuple(self, env): argument
532 t = env.from_string("{{ foo[1, 2] }}")
535 def test_raw2(self, env): argument
536 tmpl = env.from_string("{% raw %}{{ FOO }} and {% BAR %}{% endraw %}")
539 def test_const(self, env): argument
540 tmpl = env.from_string(
546 def test_neg_filter_priority(self, env): argument
547 node = env.parse("{{ -1|foo }}")
551 def test_const_assign(self, env): argument
555 pytest.raises(TemplateSyntaxError, env.from_string, tmpl)
557 def test_localset(self, env): argument
558 tmpl = env.from_string(
565 def test_parse_unary(self, env): argument
566 tmpl = env.from_string('{{ -foo["bar"] }}')
568 tmpl = env.from_string('{{ -foo["bar"]|abs }}')
573 def test_lstrip(self, env): argument
574 env = Environment(lstrip_blocks=True, trim_blocks=False)
575 tmpl = env.from_string(""" {% if True %}\n {% endif %}""")
578 def test_lstrip_trim(self, env): argument
579 env = Environment(lstrip_blocks=True, trim_blocks=True)
580 tmpl = env.from_string(""" {% if True %}\n {% endif %}""")
583 def test_no_lstrip(self, env): argument
584 env = Environment(lstrip_blocks=True, trim_blocks=False)
585 tmpl = env.from_string(""" {%+ if True %}\n {%+ endif %}""")
588 def test_lstrip_blocks_false_with_no_lstrip(self, env): argument
590 env = Environment(lstrip_blocks=False, trim_blocks=False)
591 tmpl = env.from_string(""" {% if True %}\n {% endif %}""")
593 tmpl = env.from_string(""" {%+ if True %}\n {%+ endif %}""")
596 def test_lstrip_endline(self, env): argument
597 env = Environment(lstrip_blocks=True, trim_blocks=False)
598 tmpl = env.from_string(""" hello{% if True %}\n goodbye{% endif %}""")
601 def test_lstrip_inline(self, env): argument
602 env = Environment(lstrip_blocks=True, trim_blocks=False)
603 tmpl = env.from_string(""" {% if True %}hello {% endif %}""")
606 def test_lstrip_nested(self, env): argument
607 env = Environment(lstrip_blocks=True, trim_blocks=False)
608 tmpl = env.from_string(
613 def test_lstrip_left_chars(self, env): argument
614 env = Environment(lstrip_blocks=True, trim_blocks=False)
615 tmpl = env.from_string(
621 def test_lstrip_embeded_strings(self, env): argument
622 env = Environment(lstrip_blocks=True, trim_blocks=False)
623 tmpl = env.from_string(""" {% set x = " {% str %} " %}{{ x }}""")
626 def test_lstrip_preserve_leading_newlines(self, env): argument
627 env = Environment(lstrip_blocks=True, trim_blocks=False)
628 tmpl = env.from_string("""\n\n\n{% set hello = 1 %}""")
631 def test_lstrip_comment(self, env): argument
632 env = Environment(lstrip_blocks=True, trim_blocks=False)
633 tmpl = env.from_string(
640 def test_lstrip_angle_bracket_simple(self, env): argument
641 env = Environment(
653 tmpl = env.from_string(""" <% if True %>hello <% endif %>""")
656 def test_lstrip_angle_bracket_comment(self, env): argument
657 env = Environment(
669 tmpl = env.from_string(""" <%# if True %>hello <%# endif %>""")
672 def test_lstrip_angle_bracket(self, env): argument
673 env = Environment(
685 tmpl = env.from_string(
694 def test_lstrip_angle_bracket_compact(self, env): argument
695 env = Environment(
707 tmpl = env.from_string(
717 env = Environment(lstrip_blocks=True, trim_blocks=False)
718 tmpl = env.from_string(
727 env = Environment(lstrip_blocks=True, trim_blocks=True)
728 tmpl = env.from_string(
737 env = Environment(lstrip_blocks=True, trim_blocks=False)
738 tmpl = env.from_string(
747 env = Environment(lstrip_blocks=True, trim_blocks=True)
748 tmpl = env.from_string(
757 env = Environment(lstrip_blocks=True, trim_blocks=False)
758 tmpl = env.from_string(
767 env = Environment(lstrip_blocks=True, trim_blocks=True)
768 tmpl = env.from_string(
777 env = Environment(lstrip_blocks=True, trim_blocks=False)
778 tmpl = env.from_string(
787 env = Environment(lstrip_blocks=False, trim_blocks=False)
788 tmpl = env.from_string(
797 env = Environment(lstrip_blocks=True, trim_blocks=True)
798 tmpl = env.from_string(" {# 1 space #}\n {# 2 spaces #} {# 4 spaces #}")
803 env = Environment(lstrip_blocks=True, trim_blocks=True)
804 tmpl = env.from_string("{{x}}\n{%- raw %} {% endraw -%}\n{{ y }}")
808 def test_php_syntax_with_manual(self, env): argument
809 env = Environment(
812 tmpl = env.from_string(
821 def test_php_syntax(self, env): argument
822 env = Environment(
825 tmpl = env.from_string(
834 def test_php_syntax_compact(self, env): argument
835 env = Environment(
838 tmpl = env.from_string(
847 def test_erb_syntax(self, env): argument
848 env = Environment(
851 tmpl = env.from_string(
861 def test_erb_syntax_with_manual(self, env): argument
862 env = Environment(
865 tmpl = env.from_string(
874 def test_erb_syntax_no_lstrip(self, env): argument
875 env = Environment(
878 tmpl = env.from_string(
887 def test_comment_syntax(self, env): argument
888 env = Environment(
898 tmpl = env.from_string(
909 def test_trim(self, env): argument
910 env = Environment(trim_blocks=True, lstrip_blocks=False)
911 tmpl = env.from_string(" {% if True %}\n {% endif %}")
914 def test_no_trim(self, env): argument
915 env = Environment(trim_blocks=True, lstrip_blocks=False)
916 tmpl = env.from_string(" {% if True +%}\n {% endif %}")
919 def test_no_trim_outer(self, env): argument
920 env = Environment(trim_blocks=True, lstrip_blocks=False)
921 tmpl = env.from_string("{% if True %}X{% endif +%}\nmore things")
924 def test_lstrip_no_trim(self, env): argument
925 env = Environment(trim_blocks=True, lstrip_blocks=True)
926 tmpl = env.from_string(" {% if True +%}\n {% endif %}")
929 def test_trim_blocks_false_with_no_trim(self, env): argument
931 env = Environment(trim_blocks=False, lstrip_blocks=False)
932 tmpl = env.from_string(" {% if True %}\n {% endif %}")
934 tmpl = env.from_string(" {% if True +%}\n {% endif %}")
937 tmpl = env.from_string(" {# comment #}\n ")
939 tmpl = env.from_string(" {# comment +#}\n ")
942 tmpl = env.from_string(" {% raw %}{% endraw %}\n ")
944 tmpl = env.from_string(" {% raw %}{% endraw +%}\n ")
947 def test_trim_nested(self, env): argument
948 env = Environment(trim_blocks=True, lstrip_blocks=True)
949 tmpl = env.from_string(
954 def test_no_trim_nested(self, env): argument
955 env = Environment(trim_blocks=True, lstrip_blocks=True)
956 tmpl = env.from_string(
961 def test_comment_trim(self, env): argument
962 env = Environment(trim_blocks=True, lstrip_blocks=True)
963 tmpl = env.from_string(""" {# comment #}\n\n """)
966 def test_comment_no_trim(self, env): argument
967 env = Environment(trim_blocks=True, lstrip_blocks=True)
968 tmpl = env.from_string(""" {# comment +#}\n\n """)
971 def test_multiple_comment_trim_lstrip(self, env): argument
972 env = Environment(trim_blocks=True, lstrip_blocks=True)
973 tmpl = env.from_string(
978 def test_multiple_comment_no_trim_lstrip(self, env): argument
979 env = Environment(trim_blocks=True, lstrip_blocks=True)
980 tmpl = env.from_string(
985 def test_raw_trim_lstrip(self, env): argument
986 env = Environment(trim_blocks=True, lstrip_blocks=True)
987 tmpl = env.from_string("{{x}}{% raw %}\n\n {% endraw %}\n\n{{ y }}")
990 def test_raw_no_trim_lstrip(self, env): argument
991 env = Environment(trim_blocks=False, lstrip_blocks=True)
992 tmpl = env.from_string("{{x}}{% raw %}\n\n {% endraw +%}\n\n{{ y }}")
997 tmpl = env.from_string("{{x}}{% raw +%}\n\n {% endraw +%}\n\n{{ y }}")
999 def test_no_trim_angle_bracket(self, env): argument
1000 env = Environment(
1003 tmpl = env.from_string(" <% if True +%>\n\n <% endif %>")
1006 tmpl = env.from_string(" <%# comment +%>\n\n ")
1009 def test_no_trim_php_syntax(self, env): argument
1010 env = Environment(
1020 tmpl = env.from_string(" <? if True +?>\n\n <? endif ?>")
1022 tmpl = env.from_string(" <!-- comment +-->\n\n ")