diff options
| author | Tim Graham <timograham@gmail.com> | 2016-05-10 12:46:47 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-05-10 12:46:47 -0400 |
| commit | 2f0e0eee450775a71ac3eb42707dcd970ede42c8 (patch) | |
| tree | 26149ef4a5feb6317f9b52c79239ca524a5bded4 /tests/template_tests | |
| parent | c3e108694966f045adcc0ba11133a2b3bf238770 (diff) | |
Fixed #24046 -- Deprecated the "escape" half of utils.safestring.
Diffstat (limited to 'tests/template_tests')
| -rw-r--r-- | tests/template_tests/filter_tests/test_chaining.py | 19 | ||||
| -rw-r--r-- | tests/template_tests/filter_tests/test_escape.py | 7 | ||||
| -rw-r--r-- | tests/template_tests/filter_tests/test_force_escape.py | 8 |
3 files changed, 27 insertions, 7 deletions
diff --git a/tests/template_tests/filter_tests/test_chaining.py b/tests/template_tests/filter_tests/test_chaining.py index 9bc3976f37..453e2a335f 100644 --- a/tests/template_tests/filter_tests/test_chaining.py +++ b/tests/template_tests/filter_tests/test_chaining.py @@ -1,4 +1,7 @@ -from django.test import SimpleTestCase +import warnings + +from django.test import SimpleTestCase, ignore_warnings +from django.utils.deprecation import RemovedInDjango20Warning from django.utils.safestring import mark_safe from ..utils import setup @@ -38,9 +41,19 @@ class ChainingTests(SimpleTestCase): # Using a filter that forces safeness does not lead to double-escaping @setup({'chaining05': '{{ a|escape|capfirst }}'}) def test_chaining05(self): - output = self.engine.render_to_string('chaining05', {'a': 'a < b'}) - self.assertEqual(output, 'A < b') + with warnings.catch_warnings(record=True) as warns: + warnings.simplefilter('always') + output = self.engine.render_to_string('chaining05', {'a': 'a < b'}) + self.assertEqual(output, 'A < b') + + self.assertEqual(len(warns), 1) + self.assertEqual( + str(warns[0].message), + "escape isn't the last filter in ['escape_filter', 'capfirst'] and " + "will be applied immediately in Django 2.0 so the output may change." + ) + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'chaining06': '{% autoescape off %}{{ a|escape|capfirst }}{% endautoescape %}'}) def test_chaining06(self): output = self.engine.render_to_string('chaining06', {'a': 'a < b'}) diff --git a/tests/template_tests/filter_tests/test_escape.py b/tests/template_tests/filter_tests/test_escape.py index 7dba5e1637..644ed7ac9e 100644 --- a/tests/template_tests/filter_tests/test_escape.py +++ b/tests/template_tests/filter_tests/test_escape.py @@ -1,6 +1,7 @@ from django.template.defaultfilters import escape -from django.test import SimpleTestCase +from django.test import SimpleTestCase, ignore_warnings from django.utils import six +from django.utils.deprecation import RemovedInDjango20Warning from django.utils.functional import Promise, lazy from django.utils.safestring import mark_safe @@ -24,12 +25,14 @@ class EscapeTests(SimpleTestCase): self.assertEqual(output, "x&y x&y") # It is only applied once, regardless of the number of times it - # appears in a chain. + # appears in a chain (to be changed in Django 2.0). + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'escape03': '{% autoescape off %}{{ a|escape|escape }}{% endautoescape %}'}) def test_escape03(self): output = self.engine.render_to_string('escape03', {"a": "x&y"}) self.assertEqual(output, "x&y") + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'escape04': '{{ a|escape|escape }}'}) def test_escape04(self): output = self.engine.render_to_string('escape04', {"a": "x&y"}) diff --git a/tests/template_tests/filter_tests/test_force_escape.py b/tests/template_tests/filter_tests/test_force_escape.py index 875ecb0ad9..f163f2cd75 100644 --- a/tests/template_tests/filter_tests/test_force_escape.py +++ b/tests/template_tests/filter_tests/test_force_escape.py @@ -2,7 +2,8 @@ from __future__ import unicode_literals from django.template.defaultfilters import force_escape -from django.test import SimpleTestCase +from django.test import SimpleTestCase, ignore_warnings +from django.utils.deprecation import RemovedInDjango20Warning from django.utils.safestring import SafeData from ..utils import setup @@ -35,7 +36,8 @@ class ForceEscapeTests(SimpleTestCase): self.assertEqual(output, "x&amp;y") # Because the result of force_escape is "safe", an additional - # escape filter has no effect. + # escape filter has no effect (to be changed in Django 2.0). + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'force-escape05': '{% autoescape off %}{{ a|force_escape|escape }}{% endautoescape %}'}) def test_force_escape05(self): output = self.engine.render_to_string('force-escape05', {"a": "x&y"}) @@ -46,11 +48,13 @@ class ForceEscapeTests(SimpleTestCase): output = self.engine.render_to_string('force-escape06', {"a": "x&y"}) self.assertEqual(output, "x&y") + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'force-escape07': '{% autoescape off %}{{ a|escape|force_escape }}{% endautoescape %}'}) def test_force_escape07(self): output = self.engine.render_to_string('force-escape07', {"a": "x&y"}) self.assertEqual(output, "x&y") + @ignore_warnings(category=RemovedInDjango20Warning) @setup({'force-escape08': '{{ a|escape|force_escape }}'}) def test_force_escape08(self): output = self.engine.render_to_string('force-escape08', {"a": "x&y"}) |
