test_invalid_string.py 2.3 KB

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