Refs #22306 -- Removed cycle/firstof template tags from "future".

Per deprecation timeline.
This commit is contained in:
Tim Graham 2015-08-17 08:57:38 -04:00
parent c64dd646f5
commit 57039f9661
3 changed files with 8 additions and 86 deletions

View File

@ -1,66 +0,0 @@
import warnings
from django.template import Library, defaulttags
from django.utils.deprecation import RemovedInDjango110Warning
register = Library()
@register.tag
def cycle(parser, token):
"""
This is the future version of `cycle` with auto-escaping.
The deprecation is now complete and this version is no different
from the non-future version so this is deprecated.
By default all strings are escaped.
If you want to disable auto-escaping of variables you can use::
{% autoescape off %}
{% cycle var1 var2 var3 as somecycle %}
{% autoescape %}
Or if only some variables should be escaped, you can use::
{% cycle var1 var2|safe var3|safe as somecycle %}
"""
warnings.warn(
"Loading the `cycle` tag from the `future` library is deprecated and "
"will be removed in Django 1.10. Use the default `cycle` tag instead.",
RemovedInDjango110Warning)
return defaulttags.cycle(parser, token)
@register.tag
def firstof(parser, token):
"""
This is the future version of `firstof` with auto-escaping.
The deprecation is now complete and this version is no different
from the non-future version so this is deprecated.
This is equivalent to::
{% if var1 %}
{{ var1 }}
{% elif var2 %}
{{ var2 }}
{% elif var3 %}
{{ var3 }}
{% endif %}
If you want to disable auto-escaping of variables you can use::
{% autoescape off %}
{% firstof var1 var2 var3 "<strong>fallback value</strong>" %}
{% autoescape %}
Or if only some variables should be escaped, you can use::
{% firstof var1 var2|safe var3 "<strong>fallback value</strong>"|safe %}
"""
warnings.warn(
"Loading the `firstof` tag from the `future` library is deprecated and "
"will be removed in Django 1.10. Use the default `firstof` tag instead.",
RemovedInDjango110Warning)
return defaulttags.firstof(parser, token)

View File

@ -6,7 +6,6 @@ from ..utils import setup
class CycleTagTests(SimpleTestCase): class CycleTagTests(SimpleTestCase):
libraries = {'future': 'django.templatetags.future'}
@setup({'cycle01': '{% cycle a %}'}) @setup({'cycle01': '{% cycle a %}'})
def test_cycle01(self): def test_cycle01(self):
@ -146,21 +145,17 @@ class CycleTagTests(SimpleTestCase):
output = self.engine.render_to_string('cycle25', {'a': '<'}) output = self.engine.render_to_string('cycle25', {'a': '<'})
self.assertEqual(output, '&lt;') self.assertEqual(output, '&lt;')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'cycle26': '{% cycle a b as ab %}{% cycle ab %}'})
@setup({'cycle26': '{% load cycle from future %}{% cycle a b as ab %}{% cycle ab %}'})
def test_cycle26(self): def test_cycle26(self):
output = self.engine.render_to_string('cycle26', {'a': '<', 'b': '>'}) output = self.engine.render_to_string('cycle26', {'a': '<', 'b': '>'})
self.assertEqual(output, '&lt;&gt;') self.assertEqual(output, '&lt;&gt;')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'cycle27': '{% autoescape off %}{% cycle a b as ab %}{% cycle ab %}{% endautoescape %}'})
@setup({'cycle27': '{% load cycle from future %}'
'{% autoescape off %}{% cycle a b as ab %}{% cycle ab %}{% endautoescape %}'})
def test_cycle27(self): def test_cycle27(self):
output = self.engine.render_to_string('cycle27', {'a': '<', 'b': '>'}) output = self.engine.render_to_string('cycle27', {'a': '<', 'b': '>'})
self.assertEqual(output, '<>') self.assertEqual(output, '<>')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'cycle28': '{% cycle a|safe b as ab %}{% cycle ab %}'})
@setup({'cycle28': '{% load cycle from future %}{% cycle a|safe b as ab %}{% cycle ab %}'})
def test_cycle28(self): def test_cycle28(self):
output = self.engine.render_to_string('cycle28', {'a': '<', 'b': '>'}) output = self.engine.render_to_string('cycle28', {'a': '<', 'b': '>'})
self.assertEqual(output, '<&gt;') self.assertEqual(output, '<&gt;')

View File

@ -1,12 +1,10 @@
from django.template import TemplateSyntaxError from django.template import TemplateSyntaxError
from django.test import SimpleTestCase, ignore_warnings from django.test import SimpleTestCase
from django.utils.deprecation import RemovedInDjango110Warning
from ..utils import setup from ..utils import setup
class FirstOfTagTests(SimpleTestCase): class FirstOfTagTests(SimpleTestCase):
libraries = {'future': 'django.templatetags.future'}
@setup({'firstof01': '{% firstof a b c %}'}) @setup({'firstof01': '{% firstof a b c %}'})
def test_firstof01(self): def test_firstof01(self):
@ -58,27 +56,22 @@ class FirstOfTagTests(SimpleTestCase):
output = self.engine.render_to_string('firstof10', {'a': '<'}) output = self.engine.render_to_string('firstof10', {'a': '<'})
self.assertEqual(output, '&lt;') self.assertEqual(output, '&lt;')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'firstof11': '{% firstof a b %}'})
@setup({'firstof11': '{% load firstof from future %}{% firstof a b %}'})
def test_firstof11(self): def test_firstof11(self):
output = self.engine.render_to_string('firstof11', {'a': '<', 'b': '>'}) output = self.engine.render_to_string('firstof11', {'a': '<', 'b': '>'})
self.assertEqual(output, '&lt;') self.assertEqual(output, '&lt;')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'firstof12': '{% firstof a b %}'})
@setup({'firstof12': '{% load firstof from future %}{% firstof a b %}'})
def test_firstof12(self): def test_firstof12(self):
output = self.engine.render_to_string('firstof12', {'a': '', 'b': '>'}) output = self.engine.render_to_string('firstof12', {'a': '', 'b': '>'})
self.assertEqual(output, '&gt;') self.assertEqual(output, '&gt;')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'firstof13': '{% autoescape off %}{% firstof a %}{% endautoescape %}'})
@setup({'firstof13': '{% load firstof from future %}'
'{% autoescape off %}{% firstof a %}{% endautoescape %}'})
def test_firstof13(self): def test_firstof13(self):
output = self.engine.render_to_string('firstof13', {'a': '<'}) output = self.engine.render_to_string('firstof13', {'a': '<'})
self.assertEqual(output, '<') self.assertEqual(output, '<')
@ignore_warnings(category=RemovedInDjango110Warning) @setup({'firstof14': '{% firstof a|safe b %}'})
@setup({'firstof14': '{% load firstof from future %}{% firstof a|safe b %}'})
def test_firstof14(self): def test_firstof14(self):
output = self.engine.render_to_string('firstof14', {'a': '<'}) output = self.engine.render_to_string('firstof14', {'a': '<'})
self.assertEqual(output, '<') self.assertEqual(output, '<')