test_parser.py 1.5 KB

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