tests.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from django.test import TestCase
  2. from misago.markup.parser import parse
  3. from misago.markup import checksums
  4. class ParserTests(TestCase):
  5. def test_inline_text(self):
  6. """inline elements are correctly parsed"""
  7. test_text = """
  8. Lorem **ipsum** dolor met.
  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]__ipsum[/b]__ [i]dolor[/i] [u]met[/u].
  13. Lorem [b][i]ipsum[/i][/b].
  14. Lorem [b][i]ipsum[/b][/i].
  15. Lorem [b]ipsum[/B].
  16. """.strip()
  17. expected_result = """
  18. <p>Lorem <strong>ipsum</strong> dolor met.</p>
  19. <p>Lorem <b>ipsum</b> <i>dolor</i> <u>met</u>.</p>
  20. <p>Lorem <b><strong>ipsum</strong></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>__ipsum</b>__ <i>dolor</i> <u>met</u>.</p>
  23. <p>Lorem <b><i>ipsum</i></b>.</p>
  24. <p>Lorem <b>[i]ipsum</b>[/i].</p>
  25. <p>Lorem <b>ipsum</b>.</p>
  26. """.strip()
  27. result = parse(test_text)
  28. self.assertEqual(expected_result, result['parsed_text'])
  29. def test_blocks(self):
  30. """block elements are correctly parsed"""
  31. test_text = """
  32. Lorem ipsum.
  33. [hR]
  34. Dolor met.
  35. """.strip()
  36. expected_result = """
  37. <p>Lorem ipsum.</p>
  38. <hr/>
  39. <p>Dolor met.</p>
  40. """.strip()
  41. result = parse(test_text)
  42. self.assertEqual(expected_result, result['parsed_text'])
  43. class ChecksupTests(TestCase):
  44. def test_checksums(self):
  45. fake_message = "<p>Woow, thats awesome!</p>"
  46. post_pk = 231
  47. checksum = checksums.make_checksum(fake_message, [post_pk])
  48. self.assertTrue(
  49. checksums.is_checksum_valid(fake_message, checksum, [post_pk]))
  50. self.assertFalse(
  51. checksums.is_checksum_valid(fake_message, checksum, [3]))