Тестирование сообщений в Django

Памятка, как протестировать содержимое сообщений (django.contrib.messages) в ответе сервера. При сохранении формы в сообщения записывается информация об успешности процесса. После этого происходит переадресация на следующую страницу (наиболее часто на ту же форму), где эта информация должа быть показана пользователю. Проверить сохранилась ли нужная информация в сессии или нет можно следующим кодом:

from django.test import TestCase

class MessagesTestCase(TestCase):

    def test_response(self):
        response = self.client.post('/some-url/', {'post': 'data'}, follow=True)
        self.assertRedirects(response, '/some-success-url/')  # checks redirect after post
        self.assertIn('messages', response.context)
        message = list(response.context['messages'])[0]
        self.assertEqual(message.tags, 'success')
        self.assertIn('Information was updated successfully', message.message)
 
comments powered by Disqus