summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorinondle <qfulsher@gmail.com>2016-05-27 15:12:56 -0700
committerTim Graham <timograham@gmail.com>2016-05-27 18:12:56 -0400
commit93c312cc9cb17ec13ed1957c9a2d2e4ec56b09ed (patch)
treea22519bfa6661326d4c961e83211329dbfdaf0c3
parentff6c6feae17120c2c7df74fb6a9dc76826a1e233 (diff)
Fixed #26573 -- Added descriptive error message for malformed if/else/elif template tags.
-rw-r--r--django/template/defaulttags.py3
-rw-r--r--tests/template_tests/syntax_tests/test_if.py6
2 files changed, 8 insertions, 1 deletions
diff --git a/django/template/defaulttags.py b/django/template/defaulttags.py
index 5a972e3a79..41ecd0c7d2 100644
--- a/django/template/defaulttags.py
+++ b/django/template/defaulttags.py
@@ -969,7 +969,8 @@ def do_if(parser, token):
token = parser.next_token()
# {% 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)
diff --git a/tests/template_tests/syntax_tests/test_if.py b/tests/template_tests/syntax_tests/test_if.py
index 703f3d352c..40593c7694 100644
--- a/tests/template_tests/syntax_tests/test_if.py
+++ b/tests/template_tests/syntax_tests/test_if.py
@@ -508,6 +508,12 @@ class IfTagTests(SimpleTestCase):
with self.assertRaises(TemplateSyntaxError):
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 %}'})
def test_if_tag_shortcircuit01(self):
"""