tests.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from unittest import mock
  2. from django.contrib.messages import Message, constants
  3. from django.contrib.messages.storage import base
  4. from django.test import SimpleTestCase, override_settings
  5. class MessageTests(SimpleTestCase):
  6. def test_eq(self):
  7. msg_1 = Message(constants.INFO, "Test message 1")
  8. msg_2 = Message(constants.INFO, "Test message 2")
  9. msg_3 = Message(constants.WARNING, "Test message 1")
  10. self.assertEqual(msg_1, msg_1)
  11. self.assertEqual(msg_1, mock.ANY)
  12. self.assertNotEqual(msg_1, msg_2)
  13. self.assertNotEqual(msg_1, msg_3)
  14. self.assertNotEqual(msg_2, msg_3)
  15. @override_settings(
  16. MESSAGE_TAGS={
  17. constants.WARNING: "caution",
  18. constants.ERROR: "",
  19. 12: "custom",
  20. }
  21. )
  22. def test_repr(self):
  23. tests = [
  24. (constants.INFO, "thing", "", "Message(level=20, message='thing')"),
  25. (
  26. constants.WARNING,
  27. "careful",
  28. "tag1 tag2",
  29. "Message(level=30, message='careful', extra_tags='tag1 tag2')",
  30. ),
  31. (
  32. constants.ERROR,
  33. "oops",
  34. "tag",
  35. "Message(level=40, message='oops', extra_tags='tag')",
  36. ),
  37. (12, "custom", "", "Message(level=12, message='custom')"),
  38. ]
  39. for level, message, extra_tags, expected in tests:
  40. with self.subTest(level=level, message=message):
  41. msg = Message(level, message, extra_tags=extra_tags)
  42. self.assertEqual(repr(msg), expected)
  43. class TestLevelTags(SimpleTestCase):
  44. message_tags = {
  45. constants.INFO: "info",
  46. constants.DEBUG: "",
  47. constants.WARNING: "",
  48. constants.ERROR: "bad",
  49. constants.SUCCESS: "",
  50. 12: "custom",
  51. }
  52. @override_settings(MESSAGE_TAGS=message_tags)
  53. def test_override_settings_level_tags(self):
  54. self.assertEqual(base.LEVEL_TAGS, self.message_tags)