Refs #22306 -- Removed cycle/firstof template tags from "future".
Per deprecation timeline.
This commit is contained in:
parent
c64dd646f5
commit
57039f9661
|
@ -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)
|
|
|
@ -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, '<')
|
self.assertEqual(output, '<')
|
||||||
|
|
||||||
@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, '<>')
|
self.assertEqual(output, '<>')
|
||||||
|
|
||||||
@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, '<>')
|
self.assertEqual(output, '<>')
|
||||||
|
|
|
@ -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, '<')
|
self.assertEqual(output, '<')
|
||||||
|
|
||||||
@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, '<')
|
self.assertEqual(output, '<')
|
||||||
|
|
||||||
@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, '>')
|
self.assertEqual(output, '>')
|
||||||
|
|
||||||
@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, '<')
|
||||||
|
|
Loading…
Reference in New Issue