tests.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from django.test import TestCase
  2. from misago.markup.parser import parse
  3. class ParserTests(TestCase):
  4. def test_inline_text(self):
  5. """inline elements are correctly parsed"""
  6. test_text = """
  7. Lorem **ipsum** dolor met.
  8. Lorem [b]ipsum[/b] [i]dolor[/i] [u]met[/u].
  9. Lorem [b]**ipsum**[/b] [i]dolor[/i] [u]met[/u].
  10. Lorem [b]**ipsum[/b]** [i]dolor[/i] [u]met[/u].
  11. Lorem [b]__ipsum[/b]__ [i]dolor[/i] [u]met[/u].
  12. Lorem [b][i]ipsum[/i][/b].
  13. Lorem [b][i]ipsum[/b][/i].
  14. Lorem [b]ipsum[/B].
  15. """.strip()
  16. expected_result = """
  17. <p>Lorem <strong>ipsum</strong> dolor met.</p>
  18. <p>Lorem <b>ipsum</b> <i>dolor</i> <u>met</u>.</p>
  19. <p>Lorem <b><strong>ipsum</strong></b> <i>dolor</i> <u>met</u>.</p>
  20. <p>Lorem <b>**ipsum</b>** <i>dolor</i> <u>met</u>.</p>
  21. <p>Lorem <b>__ipsum</b>__ <i>dolor</i> <u>met</u>.</p>
  22. <p>Lorem <b><i>ipsum</i></b>.</p>
  23. <p>Lorem <b>[i]ipsum</b>[/i].</p>
  24. <p>Lorem <b>ipsum</b>.</p>
  25. """.strip()
  26. result = parse(test_text)
  27. self.assertEqual(expected_result, result['parsed_text'])
  28. def test_blocks(self):
  29. """block elements are correctly parsed"""
  30. test_text = """
  31. Lorem ipsum.
  32. [hR]
  33. Dolor met.
  34. """.strip()
  35. expected_result = """
  36. <p>Lorem ipsum.</p>
  37. <hr/>
  38. <p>Dolor met.</p>
  39. """.strip()
  40. result = parse(test_text)
  41. self.assertEqual(expected_result, result['parsed_text'])