django/tests/template_tests/syntax_tests/test_invalid_string.py

69 lines
2.3 KiB
Python

from django.test import SimpleTestCase
from ..utils import setup
class InvalidStringTests(SimpleTestCase):
libraries = {"i18n": "django.templatetags.i18n"}
@setup({"invalidstr01": '{{ var|default:"Foo" }}'})
def test_invalidstr01(self):
output = self.engine.render_to_string("invalidstr01")
if self.engine.string_if_invalid:
self.assertEqual(output, "INVALID")
else:
self.assertEqual(output, "Foo")
@setup({"invalidstr02": '{{ var|default_if_none:"Foo" }}'})
def test_invalidstr02(self):
output = self.engine.render_to_string("invalidstr02")
if self.engine.string_if_invalid:
self.assertEqual(output, "INVALID")
else:
self.assertEqual(output, "")
@setup({"invalidstr03": "{% for v in var %}({{ v }}){% endfor %}"})
def test_invalidstr03(self):
output = self.engine.render_to_string("invalidstr03")
self.assertEqual(output, "")
@setup({"invalidstr04": "{% if var %}Yes{% else %}No{% endif %}"})
def test_invalidstr04(self):
output = self.engine.render_to_string("invalidstr04")
self.assertEqual(output, "No")
@setup({"invalidstr04_2": '{% if var|default:"Foo" %}Yes{% else %}No{% endif %}'})
def test_invalidstr04_2(self):
output = self.engine.render_to_string("invalidstr04_2")
self.assertEqual(output, "Yes")
@setup({"invalidstr05": "{{ var }}"})
def test_invalidstr05(self):
output = self.engine.render_to_string("invalidstr05")
if self.engine.string_if_invalid:
self.assertEqual(output, "INVALID")
else:
self.assertEqual(output, "")
@setup({"invalidstr06": "{{ var.prop }}"})
def test_invalidstr06(self):
output = self.engine.render_to_string("invalidstr06")
if self.engine.string_if_invalid:
self.assertEqual(output, "INVALID")
else:
self.assertEqual(output, "")
@setup(
{
"invalidstr07": (
"{% load i18n %}{% blocktranslate %}{{ var }}{% endblocktranslate %}"
)
}
)
def test_invalidstr07(self):
output = self.engine.render_to_string("invalidstr07")
if self.engine.string_if_invalid:
self.assertEqual(output, "INVALID")
else:
self.assertEqual(output, "")