``{% set *x* = *y* %}``
Sets a local variable.
-``{% try %}...{% except %}...{% finally %}...{% end %}``
+``{% try %}...{% except %}...{% finally %}...{% else %}...{% end %}``
Same as the python ``try`` statement.
``{% while *condition* %}... {% end %}``
# Intermediate ("else", "elif", etc) blocks
intermediate_blocks = {
- "else": set(["if", "for", "while"]),
+ "else": set(["if", "for", "while", "try"]),
"elif": set(["if"]),
"except": set(["try"]),
"finally": set(["try"]),
self.assertEqual(template.generate(x=5), b("yes"))
self.assertEqual(template.generate(x=3), b("no"))
+ def test_try(self):
+ template = Template(utf8("""{% try %}
+try{% set y = 1/x %}
+{% except %}-except
+{% else %}-else
+{% finally %}-finally
+{% end %}"""))
+ self.assertEqual(template.generate(x=1), b("\ntry\n-else\n-finally\n"))
+ self.assertEqual(template.generate(x=0), b("\ntry-except\n-finally\n"))
+
def test_comment_directive(self):
template = Template(utf8("{% comment blah blah %}foo"))
self.assertEqual(template.generate(), b("foo"))