Как может я модульный тест django сообщения?

В моем django приложении я пытаюсь записать модульный тест, который выполняет действие и затем проверяет сообщения в ответ.

Насколько я могу сказать, нет никакого хорошего способа сделать это.

Я использую метод устройства хранения данных CookieStorage, и я хотел бы сделать что-то подобное следующему:

    response = self.client.post('/do-something/', follow=True)
    self.assertEquals(response.context['messages'][0], "fail.")

Проблема, все, что я возвращаю, a

print response.context['messages']
<django.contrib.messages.storage.cookie.CookieStorage object at 0x3c55250>

Как я могу превратить это во что-то полезное, или я делаю все это неправильно?

Спасибо, Daniel

68
задан Manoj Govindan 14 August 2010 в 19:49
поделиться

1 ответ

Обновление

Мой первоначальный ответ был написан, когда django был еще 1.1 или около того. Этот ответ больше не актуален. Смотрите ответ @daveoncode для лучшего решения.

Оригинальный ответ

Я провел эксперимент, чтобы проверить это. Я изменил параметр MESSAGE_STORAGE в одном из моих проектов на 'django.contrib.messages.storage.cookie.CookieStorage' и выполнил тест, который я написал для проверки наличия сообщений. Он сработал.

Ключевым отличием от того, что вы делали, является способ получения сообщений. Смотрите ниже:

def test_message_sending(self):
    data = dict(...)
    response = self.client.post(reverse('my_view'), data)
    messages = self.user.get_and_delete_messages()

    self.assertTrue(messages)
    self.assertEqual('Hey there!', messages[0])

Это может стоить попробовать.

3
ответ дан 24 November 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: