summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2015-09-05 12:20:05 -0400
committerTim Graham <timograham@gmail.com>2015-09-23 19:31:11 -0400
commit2ccfac1a651ff35cd243cd272b2202ae1ccd5740 (patch)
treed4e47cc4adfd603f3020299f682c698746b1494d
parent9af3c6b9cef974d7d99f1ac4e83f64f09f5d352c (diff)
Refs #23913 -- Removed support for a single equals sign in {% if %} tag.
Per deprecation timeline.
-rw-r--r--django/template/smartif.py13
-rw-r--r--tests/template_tests/syntax_tests/test_if.py50
2 files changed, 7 insertions, 56 deletions
diff --git a/django/template/smartif.py b/django/template/smartif.py
index 36c76cb5e6..906350897d 100644
--- a/django/template/smartif.py
+++ b/django/template/smartif.py
@@ -1,17 +1,13 @@
"""
Parser and utilities for the smart 'if' tag
"""
-import warnings
-
-from django.utils.deprecation import RemovedInDjango110Warning
-
-
# Using a simple top down parser, as described here:
# http://effbot.org/zone/simple-top-down-parsing.htm.
# 'led' = left denotation
# 'nud' = null denotation
# 'bp' = binding power (left = lbp, right = rbp)
+
class TokenBase(object):
"""
Base class for operators and literals, mainly for debugging and for throwing
@@ -102,8 +98,6 @@ OPERATORS = {
'not': prefix(8, lambda context, x: not x.eval(context)),
'in': infix(9, lambda context, x, y: x.eval(context) in y.eval(context)),
'not in': infix(9, lambda context, x, y: x.eval(context) not in y.eval(context)),
- # This should be removed in Django 1.10:
- '=': infix(10, lambda context, x, y: x.eval(context) == y.eval(context)),
'==': infix(10, lambda context, x, y: x.eval(context) == y.eval(context)),
'!=': infix(10, lambda context, x, y: x.eval(context) != y.eval(context)),
'>': infix(10, lambda context, x, y: x.eval(context) > y.eval(context)),
@@ -178,11 +172,6 @@ class IfParser(object):
except (KeyError, TypeError):
return self.create_var(token)
else:
- if token == '=':
- warnings.warn(
- "Operator '=' is deprecated and will be removed in Django 1.10. Use '==' instead.",
- RemovedInDjango110Warning, stacklevel=2
- )
return op()
def next_token(self):
diff --git a/tests/template_tests/syntax_tests/test_if.py b/tests/template_tests/syntax_tests/test_if.py
index 6bbf2598a1..92b3f16351 100644
--- a/tests/template_tests/syntax_tests/test_if.py
+++ b/tests/template_tests/syntax_tests/test_if.py
@@ -1,9 +1,5 @@
-import warnings
-
from django.template import TemplateSyntaxError
-from django.test import SimpleTestCase, ignore_warnings
-from django.test.utils import reset_warning_registry
-from django.utils.deprecation import RemovedInDjango110Warning
+from django.test import SimpleTestCase
from ..utils import TestObj, setup
@@ -526,42 +522,8 @@ class IfTagTests(SimpleTestCase):
output = self.engine.render_to_string('if-tag-badarg04')
self.assertEqual(output, 'no')
- @setup({'if-tag-eq-deprecated': '{% if foo = bar %}yes{% else %}no{% endif %}'},
- test_once=True)
- def test_if_tag_eq_deprecated(self):
- reset_warning_registry()
- with warnings.catch_warnings(record=True) as warns:
- warnings.simplefilter('always')
- output = self.engine.render_to_string('if-tag-eq-deprecated')
- self.assertEqual(output, 'yes')
- self.assertEqual(len(warns), 1)
- self.assertEqual(
- str(warns[0].message),
- "Operator '=' is deprecated and will be removed in Django 1.10. "
- "Use '==' instead."
- )
-
-
-@ignore_warnings(category=RemovedInDjango110Warning)
-class TestEqualitySingleEqualsSign(SimpleTestCase):
- # The following tests should be changed to template.TemplateSyntaxError
- # (or simply removed) when the deprecation path ends in Django 1.10.
- @setup({'if-tag-eq01': '{% if foo = bar %}yes{% else %}no{% endif %}'})
- def test_if_tag_eq01(self):
- output = self.engine.render_to_string('if-tag-eq01', {'foo': 1})
- self.assertEqual(output, 'no')
-
- @setup({'if-tag-eq02': '{% if foo = bar %}yes{% else %}no{% endif %}'})
- def test_if_tag_eq02(self):
- output = self.engine.render_to_string('if-tag-eq02', {'foo': 1, 'bar': 1})
- self.assertEqual(output, 'yes')
-
- @setup({'if-tag-eq03': '{% if foo = bar %}yes{% else %}no{% endif %}'})
- def test_if_tag_eq03(self):
- output = self.engine.render_to_string('if-tag-eq03', {'foo': 1, 'bar': 2})
- self.assertEqual(output, 'no')
-
- @setup({'if-tag-eq04': '{% if foo == \'\' %}yes{% else %}no{% endif %}'})
- def test_if_tag_eq04(self):
- output = self.engine.render_to_string('if-tag-eq04')
- self.assertEqual(output, 'no')
+ @setup({'if-tag-single-eq': '{% if foo = bar %}yes{% else %}no{% endif %}'})
+ def test_if_tag_single_eq(self):
+ # A single equals sign is a syntax error.
+ with self.assertRaises(TemplateSyntaxError):
+ self.engine.render_to_string('if-tag-single-eq', {'foo': 1})