Как получить доступ к содержимому инфраструктуры сообщений Django в модульных тестах Django - PullRequest
6 голосов
/ 08 февраля 2012

Используя инфраструктуру сообщений Django, я передаю сообщения в шаблон для рендеринга в различных сценариях - успешное создание учетной записи пользователя и т. Д. Сообщение сохраняется в файле cookie для сеанса:

print response.cookies['messages']
Set-Cookie: messages="b6870b4797b65640bb535519a5b53808fdc0ea24$[[\"__json_message\"\05420\054\"Account verified\054 you are now logged in\"]]"; Path=/

Файл cookie является Морселем объектом, но я не могу извлечь его составные части для проверки содержимого сообщения. Любая помощь будет высоко ценится!

1 Ответ

8 голосов
/ 23 февраля 2012

Редактировать: 10-05-2014:

Альтернативный метод - перебирать сообщения в контексте ответа.Используя Django Test Client, элементы ответного сообщения могут быть проанализированы с помощью:

for message in response.context['messages']:

, который возвращает каждый объект Django Message , затем вы можете запросить атрибуты для ваших тестов.Это более чистая альтернатива исходному варианту.

Исходное решение:

Для целей архивирования исходным рабочим решением было опросить объекты cookie cookie в ответных файлах cookie.,Это менее чисто, чем новое решение.

self.assertTrue('Account verified' in response.cookies['messages'].value)

в unittest.Это кажется довольно уродливым решением, но, поскольку не будет другого набора «Учетная запись подтверждена» или другого одновременного сообщения, тогда это кажется приемлемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...