diff options
Diffstat (limited to '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 | ||||
| -rw-r--r-- | tests/utils_tests/test_safestring.py | 7 |
4 files changed, 33 insertions, 8 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"}) diff --git a/tests/utils_tests/test_safestring.py b/tests/utils_tests/test_safestring.py index 7cc92a1370..6ea3972f78 100644 --- a/tests/utils_tests/test_safestring.py +++ b/tests/utils_tests/test_safestring.py @@ -1,8 +1,9 @@ from __future__ import unicode_literals from django.template import Context, Template -from django.test import SimpleTestCase +from django.test import SimpleTestCase, ignore_warnings from django.utils import html, six, text +from django.utils.deprecation import RemovedInDjango20Warning from django.utils.encoding import force_bytes from django.utils.functional import lazy, lazystr from django.utils.safestring import ( @@ -62,11 +63,13 @@ class SafeStringTest(SimpleTestCase): def test_mark_safe_lazy_result_implements_dunder_html(self): self.assertEqual(mark_safe(lazystr('a&b')).__html__(), 'a&b') + @ignore_warnings(category=RemovedInDjango20Warning) def test_mark_for_escaping(self): s = mark_for_escaping('a&b') self.assertRenderEqual('{{ s }}', 'a&b', s=s) self.assertRenderEqual('{{ s }}', 'a&b', s=mark_for_escaping(s)) + @ignore_warnings(category=RemovedInDjango20Warning) def test_mark_for_escaping_object_implementing_dunder_html(self): e = customescape('<a&b>') s = mark_for_escaping(e) @@ -75,6 +78,7 @@ class SafeStringTest(SimpleTestCase): self.assertRenderEqual('{{ s }}', '<<a&b>>', s=s) self.assertRenderEqual('{{ s|force_escape }}', '<a&b>', s=s) + @ignore_warnings(category=RemovedInDjango20Warning) def test_mark_for_escaping_lazy(self): s = lazystr('a&b') b = lazybytes(b'a&b') @@ -83,6 +87,7 @@ class SafeStringTest(SimpleTestCase): self.assertIsInstance(mark_for_escaping(b), EscapeData) self.assertRenderEqual('{% autoescape off %}{{ s }}{% endautoescape %}', 'a&b', s=mark_for_escaping(s)) + @ignore_warnings(category=RemovedInDjango20Warning) def test_mark_for_escaping_object_implementing_dunder_str(self): class Obj(object): def __str__(self): |
