测试 post 请求时 Django 消息中间件问题

2024-03-28

我正在尝试测试一个 UpdateView,它将一条消息添加到重定向的成功页面。看来我的问题来自messages因为 pytest 返回:

django.contrib.messages.api.MessageFailure:如果不安装 django.contrib.messages.middleware.MessageMiddleware,则无法添加消息

我的测试代码是:

def test_authenticated_staff(self, rf):
    langues = LanguageCatalog.objects.create(
        lang_src='wz',
        lang_dest='en',
        percent='4'
    )
    req = rf.get(reverse("dashboard.staff:lang-update", kwargs={'pk': langues.pk}))
    data = {'lang_src': 'it',
            'lang_dest': 'en',
            'percent': '34'}
    req = rf.post(reverse(
        "dashboard.staff:lang-update", kwargs={'pk': langues.pk}), data=data)
    req.user = UserFactory()
    resp = views.LangUpdateView.as_view()(req, pk=langues.pk)

我准确地说MessageMiddleware存在于MIDDLEWARE设置。我用Django==2.0.13.


我找到了解决方案。为了测试此类请求,您需要首先使用会话对其进行注释,然后使用消息对其进行注释。实际上这意味着添加这些行:

from django.contrib.messages.middleware import MessageMiddleware
from django.contrib.sessions.middleware import SessionMiddleware

# in your test method:
"""Annotate a request object with a session"""
middleware = SessionMiddleware()
middleware.process_request(req)
req.session.save()

"""Annotate a request object with a messages"""
middleware = MessageMiddleware()
middleware.process_request(req)
req.session.save()

# and then (in my case)
resp = views.LangUpdateView.as_view()(req, pk=langues.pk)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试 post 请求时 Django 消息中间件问题 的相关文章

  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 在 Django 中定期运行一个函数

    我在 Django 中编写一个应用程序来监视一组服务器中的某些服务 我希望定期更新观点 到目前为止 我已经研究过编写自定义管理命令 链接在这里 http docs djangoproject com en dev howto custom
  • 在Python中重置生成器对象

    我有一个由多个yield 返回的生成器对象 准备调用该生成器是相当耗时的操作 这就是为什么我想多次重复使用生成器 y FunctionWithYield for x in y print x here must be something t
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • 禁用警报(); [复制]

    这个问题在这里已经有答案了 我无法控制的页面上生成的代码包含警报 有没有 jQuery 或其他方法来禁用alert 工作 我想要禁用 修改的正在生成的 JavaScript 是 function fndropdownurl val 1317
  • SendGrid 发送的密码重置电子邮件链接缺少点(域名上)

    我在 Ruby 和 Rails 框架上使用 SendGrid 邮件程序 在密码重置电子邮件模板中 我们发送一个密码重置链接 其格式如下 https subdomain domainname com password reset token
  • 更改 Exoplayer 中的播放速度

    我正在寻求实现一个具有变速播放 1 0x 1 25x 1 5x 的音频播放器 就像目前市场上典型的有声读物播放器一样 我想使用 Google 的 Exoplayer 库作为我的音频播放器库 但它们似乎不支持变速播放 关于如何实现这个的任何想
  • AVCaptureSession 音频不适用于长视频

    我正在使用 AVCaptureSession 录制带有音频的视频 对于短视频来说一切似乎都正常 但由于某种原因 如果我录制的视频长度超过 12 秒左右 音频就不起作用 Edit 因为这个答案仍然得到点赞 这个答案可以缓解问题 但问题的可能根
  • LoadLibrary 失败:第一次机会异常 0xC0000139(未找到 DLL)- 如何调试?

    我有一个 dll mytest dll 当通过加载时LoadLibrary 返回 NULL 并且 127 作为GetLastError 如果我在 mytest dll 上使用 DependencyWalker 它会报告它应该正确加载并且所有
  • 参数异常应该进行单元测试吗?

    我知道这个问题与之前发布的其他问题非常相似 但我想以适当的方式讨论这个主题 您认为 明显 的异常应该进行单元测试吗 对于明显的异常 我的意思是 例如 由于空参数或空字符串或负数而导致的异常 在我们单元的业务逻辑使我们明显看出这些异常总是会在
  • jQuery 包装集中元素的顺序是否始终与元素在标记中出现的顺序匹配?

    jQuery 包装集中元素的顺序是否保证与元素在标记中出现的顺序相匹配 我问这个问题是因为我需要对一组嵌套元素执行操作 并且我需要始终按照嵌套顺序执行操作 我可以使用以下命令运行该操作吗 each 匹配集上的迭代器并始终获得正确的顺序 或者
  • 有选择地禁用 swaggerUI 中的“尝试一下”

    尽管这里对该主题进行了很长的讨论 https github com swagger api swagger ui issues 156 https github com swagger api swagger ui issues 156 我
  • 等待页面加载

    我正在尝试创建一个等待页面加载的方法javascript 但我有一个错误 可能我没有正确使用该方法 public static void WaitForLoad this IWebDriver driver int timeoutSec 1
  • 为什么 JavaScript 中“0 === -0”为真?

    在最近的一篇文章中http wtfjs com http wtfjs com 一位作者在没有解释的情况下写了以下内容 这恰好是真实的 0 0 returns true 我对 运算符的理解是 如果操作数指向同一个对象 它会返回 true 此外
  • 迭代时从地图(或任何其他 STL 容器)中擦除/删除内容

    据称 当迭代器变得无效时 您不能在迭代时删除 删除容器中的元素 删除满足特定条件的元素的 安全 方法是什么 请只使用 stl 不要使用 boost 或 tr1 EDIT如果我想删除满足特定条件的多个元素 是否有更优雅的方法 也许使用函子和
  • 将带有 html 扩展名的文件重定向到不带扩展名的文件(在 url 中)

    我最近使用 htaccess 更改了我的网站网址 这样我的网址就不会显示文件扩展名 现在我的问题是我创建了一个新的 xml 站点地图 这样我的 url 将是无扩展名的 Google 网站管理员工具告诉我有关重复内容的问题 IE page 和
  • 如何将 IntentService 的结果返回到 Activity 中?

    我正在使用 IntentService 通过 JSON 处理与服务器的网络通信 JSON 服务器部分工作正常 但我无法将结果返回到需要的地方 以下代码显示了我如何从 onClick 内部启动意图服务 然后让该服务更新全局变量以将结果转发回主
  • 使用 powershell 对整个目录进行 MD5 校验和哈希

    我正在尝试使用 powershell 为整个目录生成 MD5 校验和 在 Linux 上 有一个非常有效的 1 liner 如下所示 tar cf 某个目录 md5和 我了解到 tar 现在是 Windows 10 的一部分 并且可以在 P
  • Ruby on Rails 中的 Gemfile 和 Gemfile.lock 有什么区别

    我是 Ruby on Rails 的初学者 我正在使用 Rails 3 0 9 有什么区别Gemfile and Gemfile lock在 Rails 中 The Gemfile是您指定要使用哪些 gem 的地方 并允许您指定哪些版本 T
  • 获取未安装字体的字体和 Windows 名称

    有人可以告诉我如何获得字体的字体名称吗 我如何获取具有字体名称的字体的 Windows 名称 例如 arialblackno1 ttf 其字体为 arialblack 但我希望获取未安装的字体的字体名称 它只是在一个文件夹中 您在评论中说您
  • C#属性和ref参数,为什么没有糖?

    我刚刚在 C 中工作时遇到了此错误消息 属性或索引器不能作为 out 或 ref 参数传递 我知道导致此问题的原因 并快速解决了创建正确类型的局部变量 并将其作为函数调用的问题out ref参数 然后将其分配回属性 RefFn ref ob
  • 为什么嵌套的 HTML 元素会让我的 CSS 跳转?

    这是一个谜题 基本页面 一个元素 http jsfiddle net PZj6t http jsfiddle net PZj6t HTML div div CSS body html height 100 margin 0 padding
  • 使用 COMMAw,d 转换数字

    我正在关注SAS 帮助页面 http support sas com documentation cdl en lrdict 64316 HTML default viewer htm a000200667 htm并试图获得与页面底部示例相
  • 测试 post 请求时 Django 消息中间件问题

    我正在尝试测试一个 UpdateView 它将一条消息添加到重定向的成功页面 看来我的问题来自messages因为 pytest 返回 django contrib messages api MessageFailure 如果不安装 dja