Kaydet (Commit) 93c312cc authored tarafından inondle's avatar inondle Kaydeden (comit) Tim Graham

Fixed #26573 -- Added descriptive error message for malformed if/else/elif template tags.

üst ff6c6fea
...@@ -969,7 +969,8 @@ def do_if(parser, token): ...@@ -969,7 +969,8 @@ def do_if(parser, token):
token = parser.next_token() token = parser.next_token()
# {% endif %} # {% endif %}
assert token.contents == 'endif' if token.contents != 'endif':
raise TemplateSyntaxError('Malformed template tag at line {0}: "{1}"'.format(token.lineno, token.contents))
return IfNode(conditions_nodelists) return IfNode(conditions_nodelists)
......
...@@ -508,6 +508,12 @@ class IfTagTests(SimpleTestCase): ...@@ -508,6 +508,12 @@ class IfTagTests(SimpleTestCase):
with self.assertRaises(TemplateSyntaxError): with self.assertRaises(TemplateSyntaxError):
self.engine.get_template('if-tag-error12') self.engine.get_template('if-tag-error12')
@setup({'else-if-tag-error01': '{% if foo is bar %} yes {% else if foo is not bar %} no {% endif %}'})
def test_else_if_tag_error01(self):
error_message = 'Malformed template tag at line 1: "else if foo is not bar"'
with self.assertRaisesMessage(TemplateSyntaxError, error_message):
self.engine.get_template('else-if-tag-error01')
@setup({'if-tag-shortcircuit01': '{% if x.is_true or x.is_bad %}yes{% else %}no{% endif %}'}) @setup({'if-tag-shortcircuit01': '{% if x.is_true or x.is_bad %}yes{% else %}no{% endif %}'})
def test_if_tag_shortcircuit01(self): def test_if_tag_shortcircuit01(self):
""" """
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment