1. from django.test import SimpleTestCase
    
  2. 
    
  3. from ..utils import setup
    
  4. 
    
  5. 
    
  6. class InvalidStringTests(SimpleTestCase):
    
  7.     libraries = {"i18n": "django.templatetags.i18n"}
    
  8. 
    
  9.     @setup({"invalidstr01": '{{ var|default:"Foo" }}'})
    
  10.     def test_invalidstr01(self):
    
  11.         output = self.engine.render_to_string("invalidstr01")
    
  12.         if self.engine.string_if_invalid:
    
  13.             self.assertEqual(output, "INVALID")
    
  14.         else:
    
  15.             self.assertEqual(output, "Foo")
    
  16. 
    
  17.     @setup({"invalidstr02": '{{ var|default_if_none:"Foo" }}'})
    
  18.     def test_invalidstr02(self):
    
  19.         output = self.engine.render_to_string("invalidstr02")
    
  20.         if self.engine.string_if_invalid:
    
  21.             self.assertEqual(output, "INVALID")
    
  22.         else:
    
  23.             self.assertEqual(output, "")
    
  24. 
    
  25.     @setup({"invalidstr03": "{% for v in var %}({{ v }}){% endfor %}"})
    
  26.     def test_invalidstr03(self):
    
  27.         output = self.engine.render_to_string("invalidstr03")
    
  28.         self.assertEqual(output, "")
    
  29. 
    
  30.     @setup({"invalidstr04": "{% if var %}Yes{% else %}No{% endif %}"})
    
  31.     def test_invalidstr04(self):
    
  32.         output = self.engine.render_to_string("invalidstr04")
    
  33.         self.assertEqual(output, "No")
    
  34. 
    
  35.     @setup({"invalidstr04_2": '{% if var|default:"Foo" %}Yes{% else %}No{% endif %}'})
    
  36.     def test_invalidstr04_2(self):
    
  37.         output = self.engine.render_to_string("invalidstr04_2")
    
  38.         self.assertEqual(output, "Yes")
    
  39. 
    
  40.     @setup({"invalidstr05": "{{ var }}"})
    
  41.     def test_invalidstr05(self):
    
  42.         output = self.engine.render_to_string("invalidstr05")
    
  43.         if self.engine.string_if_invalid:
    
  44.             self.assertEqual(output, "INVALID")
    
  45.         else:
    
  46.             self.assertEqual(output, "")
    
  47. 
    
  48.     @setup({"invalidstr06": "{{ var.prop }}"})
    
  49.     def test_invalidstr06(self):
    
  50.         output = self.engine.render_to_string("invalidstr06")
    
  51.         if self.engine.string_if_invalid:
    
  52.             self.assertEqual(output, "INVALID")
    
  53.         else:
    
  54.             self.assertEqual(output, "")
    
  55. 
    
  56.     @setup(
    
  57.         {
    
  58.             "invalidstr07": (
    
  59.                 "{% load i18n %}{% blocktranslate %}{{ var }}{% endblocktranslate %}"
    
  60.             )
    
  61.         }
    
  62.     )
    
  63.     def test_invalidstr07(self):
    
  64.         output = self.engine.render_to_string("invalidstr07")
    
  65.         if self.engine.string_if_invalid:
    
  66.             self.assertEqual(output, "INVALID")
    
  67.         else:
    
  68.             self.assertEqual(output, "")