1. from django.template.base import TemplateSyntaxError
    
  2. from django.test import SimpleTestCase
    
  3. from django.utils.lorem_ipsum import COMMON_P, WORDS
    
  4. 
    
  5. from ..utils import setup
    
  6. 
    
  7. 
    
  8. class LoremTagTests(SimpleTestCase):
    
  9.     @setup({"lorem1": "{% lorem 3 w %}"})
    
  10.     def test_lorem1(self):
    
  11.         output = self.engine.render_to_string("lorem1")
    
  12.         self.assertEqual(output, "lorem ipsum dolor")
    
  13. 
    
  14.     @setup({"lorem_random": "{% lorem 3 w random %}"})
    
  15.     def test_lorem_random(self):
    
  16.         output = self.engine.render_to_string("lorem_random")
    
  17.         words = output.split(" ")
    
  18.         self.assertEqual(len(words), 3)
    
  19.         for word in words:
    
  20.             self.assertIn(word, WORDS)
    
  21. 
    
  22.     @setup({"lorem_default": "{% lorem %}"})
    
  23.     def test_lorem_default(self):
    
  24.         output = self.engine.render_to_string("lorem_default")
    
  25.         self.assertEqual(output, COMMON_P)
    
  26. 
    
  27.     @setup({"lorem_syntax_error": "{% lorem 1 2 3 4 %}"})
    
  28.     def test_lorem_syntax(self):
    
  29.         msg = "Incorrect format for 'lorem' tag"
    
  30.         with self.assertRaisesMessage(TemplateSyntaxError, msg):
    
  31.             self.engine.render_to_string("lorem_syntax_error")
    
  32. 
    
  33.     @setup({"lorem_multiple_paragraphs": "{% lorem 2 p %}"})
    
  34.     def test_lorem_multiple_paragraphs(self):
    
  35.         output = self.engine.render_to_string("lorem_multiple_paragraphs")
    
  36.         self.assertEqual(output.count("<p>"), 2)
    
  37. 
    
  38.     @setup({"lorem_incorrect_count": "{% lorem two p %}"})
    
  39.     def test_lorem_incorrect_count(self):
    
  40.         output = self.engine.render_to_string("lorem_incorrect_count")
    
  41.         self.assertEqual(output.count("<p>"), 1)