如何在 Django 单元测试中访问 Django 消息框架内容
使用 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 对象,但我似乎无法提取它的组成部分来测试消息内容。任何帮助将不胜感激!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑:2014 年 10 月 5 日:
另一种方法是迭代响应上下文中的消息。使用 Django 测试客户端,可以通过以下方式解析响应消息项:
返回每个 Django Message 对象,然后您可以查询测试的属性。这是比原始选项更干净的替代方案。
原始解决方案:
出于存档目的,原始工作解决方案是询问响应 cookie 中的 Cookie 碎片对象。这比新解决方案不太干净。
在单元测试中。这似乎是一个相当丑陋的解决方案,但由于不会有另一个“帐户已验证”集,也不会出现另一个同时发生的消息,所以它似乎可以接受。
Edit: 10-05-2014:
An alternative method is to iterate the messages in the response context. Using the Django Test Client, the response message items can be parsed via:
Which returns each Django Message object, you can then interrogate the attributes for your tests. This is a cleaner alternative to the original option.
Original Solution:
For archive purposes, the original working solution was to interrogate the Cookie morsel objects in the response cookies. This is less clean than the new solution.
in the unittest. It seems quite an ugly solution, but since there won't be another 'Account verified' set, nor another simultaneous message, then it seems acceptable.