测试 Django 信号的正确方法

2024-02-22

我正在尝试测试发送的信号,它正在提供_args。内部触发信号contact_question_create提交表单后立即查看。

我的测试用例是这样的:

    def test_form_should_post_proper_data_via_signal(self):
        form_data = {'name': 'Jan Nowak'}
        signals.question_posted.send(sender='test', form_data=form_data)
        @receiver(signals.question_posted, sender='test')
        def question_posted_listener(sender, form_data):
            self.name = form_data['name']
        eq_(self.name, 'Jan Nowak')

这是测试该信号的正确方法吗?还有更好的想法吗?


完成您在 2015 年提出的要求的最简单方法:

from unittest.mock import patch

@patch('full.path.to.signals.question_posted.send')
def test_question_posted_signal_triggered(self, mock):
    form = YourForm()
    form.cleaned_data = {'name': 'Jan Nowak'}
    form.save()

    # Check that your signal was called.
    self.assertTrue(mock.called)

    # Check that your signal was called only once.
    self.assertEqual(mock.call_count, 1)

    # Do whatever else, like actually checking if your signal logic did well.

这样,您刚刚测试了信号是否已正确触发。

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

测试 Django 信号的正确方法 的相关文章

随机推荐

  • 如何在Java中获取HashMap的前10个键值

    我有这样的哈希图 apple 20 nanas 18 anggur 12 我的哈希图已经按值降序排序 我想从第一个元素哈希图中获取 10 个元素 谁能帮我 如果你使用 java 8 我会选择 List
  • 防止多个 Ionic 警报叠加

    如何检测离子 2警报 UI 组件 http ionicframework com docs v2 components alert实例已经打开 以免出现另一个警报 我最终为 Ionic Alertcontroller 编写了一个包装提供程序
  • XLSX 文件是否按定义采用 UTF-8 编码?

    我正在尝试使用 PHP 读取 XLSX 文件 使用gneustaetter XLSXReader https github com gneustaetter XLSXReader准确地说 但是 这些 XLSX 文件是由不同的公司使用不同的软
  • 为 Facebook 页面生成“永不过期”访问令牌

    我已成功通过 API C 发布到 Facebook 页面 但是当页面管理员注销时 出现以下错误 OAuthException 190 验证访问令牌时出错 会话无效 因为用户注销 如何生成永不过期的访问令牌 我需要一个不会打开 Faceboo
  • Kafka 在生产者 vs 主题上设置压缩类型

    在kafka中启用压缩的以下方式有什么区别 方法一 使用命令创建主题 bin kafka topics sh create zookeeper localhost 2181 config compression type gzip topi
  • Importxml 导入内容为空

    当我在谷歌电子表格中使用下面的公式时 我遇到错误消息导入的内容为空 IMPORTXML https www moh gov sg content moh web home pressRoom html div class article h
  • nginx 位置索引指令不起作用

    我是 nginx 的新手 我无法确定为什么我的 nginx 配置不能按预期工作 我想做的就是让 nginx 对于每个 Web 根 请求优先考虑 index html 而不是 index php 这是我的 nginx 配置 user www
  • 使用 R 重现 SPSS 因子分析

    我希望有人能指出我正确的方向 首先 我不是统计学家 我是一名软件开发人员 其任务是尝试使用 R 重现 SPSS 因子分析的结果 使用 PC 提取和最大方差旋转 我在过去一周才接触过 R 所以我试图找到我的方式 我确实发现 2010 年的这篇
  • 存在哪些基于 IP 进行人员地理定位的服务? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 人们使用什么来对一个人的 IP 进行地理定位以确定他们所在的城市 我已经尝试过 Google API 的
  • Hadley高级R书中的非标准评估

    在哈德利的高级R书籍 http adv r had co nz Computing on the language html 有一段代码我无法理解输出 f lt function x substitute x g lt function x
  • 是否可以按值删除队列元素?

    我想从队列中删除具有特定值的元素 这样的事该怎么办呢 我正在尝试创建映射和队列的并发混合 目前我尝试在这个答案 https stackoverflow com questions 7704526 is thare in stl or boo
  • Eclipse PyDev 完成挂起(再次)

    我在 Eclipse 中使用 PyDev 作为我的 Python 编辑器 就功能集而言 它很好 除了一件非常烦人的事情之外 一切都工作正常 代码完成本身运行速度很快 当我按 Alt Space 时 窗口几乎立即弹出 所有选项都在那里 顶部的
  • PHP DOM文档错误处理

    在我的应用程序中 我从 url 加载 xml 以便解析它 但有时该网址可能无效 在这种情况下我需要处理错误 我有以下代码 xdoc new DOMDocument try xdoc gt load url This line causes
  • 无法让 QueryDsl / APT 生成 Q 类

    我正在尝试在新的 Spring 项目中使用 QueryDsl 我对 QueryDsl 很陌生 对 Maven 和 Spring 也很陌生 所以我可能会缺少一些相当基本的东西 但我无法让 QueryDsl maven apt plugin 来
  • boost是否支持c++11的std::tuple的序列化?

    boost是否支持c 11的std tuple的序列化 我在 boost serialization 找不到 tuple hpp 头文件 我正在使用 boost 1 52 0 如果需要的话很乐意升级 但似乎1 53版本的变化 http ww
  • Silex - Twig_Error_Syntax:函数“路径”不存在

    根据Silex 文档 http silex sensiolabs org doc providers twig html symfony2 components integration Symfony 提供了一个 Twig 桥 它在一些 S
  • React-native run-android 卡在 99% appDebug

    I have previously shut down the react native run android still it gets stuck at 99 executing I don t seem to find any so
  • Gulp src 返回空文件

    我正在尝试为 sass js 编译创建 Gulp 任务 并且我还包含了用于实时重新加载的代码 它工作得很好 只是有时 gulp src 在我编辑它们时会将空文件扔到管道中 var gulp require gulp var sass req
  • 是否可以从 CUDA 10.1 内核调用 cuBLAS 或 cuBLASLt 函数?

    关于 CUDA 10 1 我正在对几何网格进行一些计算 并在网格的每个面进行大量独立计算 我运行一个 CUDA 内核来计算每个面 计算涉及一些矩阵乘法 因此我想使用 cuBLAS 或 cuBLASLt 来加快速度 由于我需要进行许多矩阵乘法
  • 测试 Django 信号的正确方法

    我正在尝试测试发送的信号 它正在提供 args 内部触发信号contact question create提交表单后立即查看 我的测试用例是这样的 def test form should post proper data via sign