from django.template.base import TemplateSyntaxError from django.test import SimpleTestCase from django.utils.lorem_ipsum import COMMON_P, WORDS from ..utils import setup class LoremTagTests(SimpleTestCase): @setup({'lorem1': '{% lorem 3 w %}'}) def test_lorem1(self): output = self.engine.render_to_string('lorem1') self.assertEqual(output, 'lorem ipsum dolor') @setup({'lorem_random': '{% lorem 3 w random %}'}) def test_lorem_random(self): output = self.engine.render_to_string('lorem_random') words = output.split(' ') self.assertEqual(len(words), 3) for word in words: self.assertIn(word, WORDS) @setup({'lorem_default': '{% lorem %}'}) def test_lorem_default(self): output = self.engine.render_to_string('lorem_default') self.assertEqual(output, COMMON_P) @setup({'lorem_syntax_error': '{% lorem 1 2 3 4 %}'}) def test_lorem_syntax(self): msg = "Incorrect format for 'lorem' tag" with self.assertRaisesMessage(TemplateSyntaxError, msg): self.engine.render_to_string('lorem_syntax_error') @setup({'lorem_multiple_paragraphs': '{% lorem 2 p %}'}) def test_lorem_multiple_paragraphs(self): output = self.engine.render_to_string('lorem_multiple_paragraphs') self.assertEqual(output.count('

'), 2) @setup({'lorem_incorrect_count': '{% lorem two p %}'}) def test_lorem_incorrect_count(self): output = self.engine.render_to_string('lorem_incorrect_count') self.assertEqual(output.count('

'), 1)