7

使用 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对象,但我似乎无法提取它的组成部分来测试消息内容。任何帮助将非常感激!

4

1 回答 1

8

编辑:2014 年 10 月 5 日:

另一种方法是在响应上下文中迭代消息。使用 Django 测试客户端,可以通过以下方式解析响应消息项:

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

它返回每个 Django Message对象,然后您可以查询测试的属性。这是原始选项的更清洁的替代方案。

原始解决方案:

出于存档目的,最初的工作解决方案是询问响应 cookie 中的 Cookie morsel 对象。这不如新解决方案干净。

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

在单元测试中。这似乎是一个相当丑陋的解决方案,但由于不会有另一个“帐户验证”集,也没有另一个同步消息,所以它似乎可以接受。

于 2012-02-23T13:34:15.653 回答