Я пишу тесты для одного из своих приложений django и давно искал эту проблему. У меня есть представление, которое отправляет сообщения с помощью django.contrib.messages
для разных случаев. Вид выглядит примерно так:
from django.contrib import messages
from django.shortcuts import redirect
import custom_messages
def some_view(request):
""" This is a sample view for testing purposes.
"""
some_condition = models.SomeModel.objects.get_or_none(
condition=some_condition)
if some_condition:
messages.success(request, custom_message.SUCCESS)
else:
messages.error(request, custom_message.ERROR)
redirect(some_other_view)
Теперь при тестировании этого представления client.get
ответ не содержит словаря context
, который содержит messages
, так как в этом представлении используется перенаправление. Для представлений, отображающих шаблоны, мы можем получить доступ к списку сообщений с помощью messages = response.context.get('messages')
. Как мы можем получить доступ messages
для представления, которое перенаправляет?