test_api.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from django.test import TestCase, RequestFactory
  2. from django.contrib import messages
  3. class DummyStorage(object):
  4. """
  5. dummy message-store to test the api methods
  6. """
  7. def __init__(self):
  8. self.store = []
  9. def add(self, level, message, extra_tags=''):
  10. self.store.append(message)
  11. class ApiTest(TestCase):
  12. def setUp(self):
  13. self.rf = RequestFactory()
  14. self.request = self.rf.request()
  15. self.storage = DummyStorage()
  16. def test_ok(self):
  17. msg = 'some message'
  18. self.request._messages = self.storage
  19. messages.add_message(self.request, messages.DEBUG, msg)
  20. self.assertIn(msg, self.storage.store)
  21. def test_request_is_none(self):
  22. msg = 'some message'
  23. self.request._messages = self.storage
  24. with self.assertRaises(TypeError):
  25. messages.add_message(None, messages.DEBUG, msg)
  26. self.assertEqual([], self.storage.store)
  27. def test_middleware_missing(self):
  28. msg = 'some message'
  29. with self.assertRaises(messages.MessageFailure):
  30. messages.add_message(self.request, messages.DEBUG, msg)
  31. self.assertEqual([], self.storage.store)
  32. def test_middleware_missing_silently(self):
  33. msg = 'some message'
  34. messages.add_message(self.request, messages.DEBUG, msg,
  35. fail_silently=True)
  36. self.assertEqual([], self.storage.store)