使用Django消息框架,我将消息传递给模板以在各种场景中呈现 - 用户帐户创建成功等。消息存储在会话的cookie中:
print response.cookies['messages']
Set-Cookie: messages="b6870b4797b65640bb535519a5b53808fdc0ea24$[[\"__json_message\"\05420\054\"Account verified\054 you are now logged in\"]]"; Path=/
Cookie是Morsel对象,但我似乎无法提取它的组成部分来测试邮件内容。任何帮助将不胜感激!
答案 0 :(得分:8)
编辑:10-05-2014:
另一种方法是迭代响应上下文中的消息。使用Django Test Client,可以通过以下方式解析响应消息项:
for message in response.context['messages']:
返回每个Django Message对象,然后您可以查询测试的属性。这是原始选项的更清晰的替代方案。
原始解决方案:
出于存档目的,原始的工作解决方案是询问响应cookie中的Cookie morsel对象。这比新解决方案更不干净。
self.assertTrue('Account verified' in response.cookies['messages'].value)
在unittest中。这似乎是一个非常难看的解决方案,但由于不会有另一个“帐户验证”设置,也没有另一个同时发送的消息,那么它似乎是可以接受的。