在 python 3.5 中模拟异步调用

2023-11-24

如何使用以下命令模拟从一个本机协程到另一个协程的异步调用unittest.mock.patch?

我目前有一个相当尴尬的解决方案:

class CoroutineMock(MagicMock):
    def __await__(self, *args, **kwargs):
        future = Future()
        future.set_result(self)
        result = yield from future
        return result

Then

class TestCoroutines(TestCase):
    @patch('some.path', new_callable=CoroutineMock)
    def test(self, mock):
        some_action()
        mock.assert_called_with(1,2,3)

这可行但看起来很丑。有没有更多的Pythonic方法来做到这一点?


解决方案实际上很简单: 我只需要转换__call__模拟进入协程的方法:

class AsyncMock(MagicMock):
    async def __call__(self, *args, **kwargs):
        return super(AsyncMock, self).__call__(*args, **kwargs)

这完美地工作,当调用模拟时,代码接收本机协程

用法示例:

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

在 python 3.5 中模拟异步调用 的相关文章

  • 如何覆盖 Django 的默认管理模板和布局

    我正在尝试覆盖 Django 的默认模板 现在只有base site html 我正在尝试更改 django 管理文本 我做了以下事情 我在我的应用程序目录中创建了一个文件夹 opt mydjangoapp templates admin
  • 上传时的 Google Drive API——这些额外的空行从何而来?

    总结一下该程序 我从我的 Google 云端硬盘下载一个文件 然后在本地计算机中打开并读取一个文件 file a txt 然后在我的计算机中打开另一个文件 file b txt 处于附加模式 并且在使用这个新的 file b 更新我的 Go
  • 如何使用 colorchecker 在 opencv 中进行颜色校准?

    我有数码相机获取的色彩检查器图像 我如何使用它来使用 opencv 校准图像 按照以下颜色检查器图像操作 您是想问如何进行颜色校准或如何使用 OpenCV 进行校准 为了进行颜色校准 您可以使用校准板的最后一行 灰色调 以下是您应该逐步进行
  • TensorFlow:带有轴选项的 bincount

    在 TensorFlow 中 我可以使用 tf bincount 获取数组中每个元素的计数 x tf placeholder tf int32 None freq tf bincount x tf Session run freq feed
  • ctypes 错误:libdc1394 错误:无法初始化 libdc1394

    我正在尝试将程序编译为共享库 我可以使用 ctypes 在 Python 代码中使用该库 使用以下命令该库可以正常编译 g shared Wl soname mylib O3 o mylib so fPIC files pkg config
  • 从sklearn PCA获取特征值和向量

    如何获取 PCA 应用程序的特征值和特征向量 from sklearn decomposition import PCA clf PCA 0 98 whiten True converse 98 variance X train clf f
  • PyTorch 给出 cuda 运行时错误

    我对我的代码做了一些小小的修改 以便它不使用 DataParallel and DistributedDataParallel 代码如下 import argparse import os import shutil import time
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • Pandas:如何将数据框插入 Clickhouse

    我正在尝试将 Pandas 数据框插入 Clickhouse 这是我的代码 import pandas import sqlalchemy as sa uri clickhouse default localhost default ch
  • 在相同任务上,Keras 比 TensorFlow 慢

    我正在使用 Python 运行斩首 DCNN 本例中为 Inception V3 来获取图像特征 我使用的是 Anaconda Py3 6 和 Windows7 使用 TensorFlow 时 我将会话保存在变量中 感谢 jdehesa 并
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • Werkzeug 中的线程和本地代理。用法

    首先 我想确保我正确理解了功能的分配 分配本地代理功能以通过线程内的模块 包 共享变量 对象 我对吗 其次 用法对我来说仍然不清楚 也许是因为我误解了作业 我用烧瓶 如果我有两个 或更多 模块 A B 我想将对象C从模块A导入到模块B 但我
  • 使用 pybtex 将 bibtex 转换为格式化的 HTML 参考书目,例如哈佛风格

    我正在使用 Django 并将 bibtex 存储在我的模型中 并且希望能够以格式化 HTML 字符串的形式向我的视图传递引用 使其看起来像哈佛引用样式 使用中描述的方法Pybtex 无法识别 bibtex 条目 https stackov
  • 使用 NLP 进行地址分割

    我目前正在开发一个项目 该项目应识别地址的每个部分 例如来自 str Jack London 121 Corvallis ARAD ap 1603 973130 输出应如下所示 street name Jack London no 121
  • 从 python 检测 macOS 中的暗模式

    我正在编写一个 PyQt 应用程序 我必须添加一个补丁 以便在启用暗模式的 Macos 上可以读取字体 app QApplication Fix for the font colours on macos when running dark
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • 附加两个具有相同列、不同顺序的数据框

    我有两个熊猫数据框 noclickDF DataFrame 0 123 321 0 1543 432 columns click id location clickDF DataFrame 1 123 421 1 1543 436 colu
  • bs4 `next_sibling` VS `find_next_sibling`

    我在使用时遇到困难next sibling 并且类似地与next element 如果用作属性 我不会得到任何返回 但如果用作find next sibling or find next 然后就可以了 来自doc https www cru
  • 通过 Web 界面执行 python 单元测试

    是否可以通过 Web 界面执行单元测试 如果可以 如何执行 EDIT 现在我想要结果 对于测试 我希望它们是自动化的 可能每次我对代码进行更改时 抱歉我忘了说得更清楚 EDIT 这个答案此时已经过时了 Use Jenkins https j
  • 使用Multiprocessing和Pool时如何访问全局变量?

    我试图避免将变量冗余地传递到dataList e g 1 globalDict 2 globalDict 3 globalDict 并在全球范围内使用它们 global globalDict然而 在下面的代码中并不是这样做的解决方案 是否有

随机推荐

  • Dapper.net Oracle 参数

    我正在尝试将 Dapper net 与 Oracle 一起使用 由此post我知道我们可以使用没有前缀的参数 然后 dapper 就可以同时使用sql serverand oracle 如果没有显式的 oracle 命名参数前缀 我很难让它
  • Javascript在数组中找到最接近的数字而不进行下探

    例如 我有一个数字数组 300 500 700 1000 2000 3000 我想找到最接近的数字 而不低于给定的数字 例如 搜索 2200 将返回 3000 而不是 2000 但是 如果我搜索 3200 因为数组中没有更高的值 它应该返回
  • 将php对象存储在html表单元素上并通过GET方法传递php对象?

    我可能听起来有点奇怪 但是有办法吗 例如 我有一个 PHP 对象 foo 有没有办法通过某些对象加密函数以 HTML 表单 隐藏输入 存储该对象 然后使用解密函数检索该对象 同样 我可以通过 GET 方法传递这些对象吗 就像其他地方已经指出
  • React useEffect 导致:无法对未安装的组件执行 React 状态更新

    获取数据时 我得到 无法在未安装的组件上执行 React 状态更新 该应用程序仍然有效 但反应表明我可能会导致内存泄漏 这是一个空操作 但它表明应用程序中存在内存泄漏 要修复此问题 请取消 useEffect 清理函数中的所有订阅和异步任务
  • C# 读取注册表:ProductID 在 x86 目标应用程序中返回 null。 “任何CPU”都可以正常工作

    我最近搬到了一台装有 VS 2010 的 W7 64 位机器 我的项目设置为运行Any CPU 当我将其更改为目标时x86我注意到我的一些注册表调用不再起作用 我正在尝试阅读ProductID像这样的字段 RegistryKey windo
  • Bootstrap carousel:如何同时滑动两个carousel滑块?

    我在单个页面上有三个轮播滑块 我希望它们同时移动其中两个 即两者应该同时更改滑块图像 两者都有相同数量的图像 幻灯片 这是我正在使用的代码 jQuery carousel example generic1 carousel example
  • Interface Builder 中的颜色错误

    问题 我在 Interface Builder 中设置了颜色 设置了 RGB 通道 然后对工作窗口进行了屏幕截图 在 Photoshop 中打开它 并通过颜色选择器 我在 Interface Builder 中设置 检查颜色 结果 RGB值
  • 在 64 位 Windows 7 上使用 32 位版本的 ODBC?

    我在使用 ODBC 和使用 Visual Basic 6 因此它是 32 位 编写的应用程序时遇到问题 看来VB6的ODBC库与Windows 7的64位ODBC不兼容 返回的错误码是 2147220992并且它在谈论不兼容的架构 我可以安
  • QMake CONFIG() 函数和“主动配置”

    在阅读 Qt 5 1 的文档 特别是 qmake 的文档时 我对 qmake CONFIG 函数文档中给出的解释感到困惑 我完全理解该函数的单参数版本 但双参数版本对我来说完全没有意义 我认为我的困惑来自于缺乏 活动配置 的定义 因为 Qt
  • Puppeteer 登录 page.evaluate 内

    我如何console log page evaluate中的某些内容 将其传递给节点并使用它during页面的评价 我实际上想将 page evaluate 的进度记录到控制台并向用户显示一些结果 puppeteer 12 的更新 改编自当
  • 画布被 CORS 数据和 S3 污染

    我的应用程序正在显示存储在AWS S3 出于安全原因 位于私人存储桶中 为了允许用户从浏览器中查看我生成的图像签名 URL like https s3 eu central 1 amazonaws com my bucket stuff i
  • Quartz 调度程序与设置 cron

    计划从设置 cron 作业转向 Quartz 调度程序 使用 Quartz 而不是设置 cron 的优点 缺点是什么 收到时间触发作业 Cron 还是 Quartz 关联 还有其他指点吗 我用过并且喜欢石英 以下是石英的一些优点 如果您使用
  • HTTP cookie 端口特定吗?

    我在一台机器上运行两个 HTTP 服务 我只是想知道他们是否共享 cookie 或者浏览器是否区分两个服务器套接字 当前的 cookie 规范是RFC 6265 它取代了RFC 2109 and RFC 2965 两个 RFC 现在都标记为
  • cygpath 无法将 Windows 路径转换为 ​​Linux 路径

    我正在尝试在 Windows 计算机上将文件路径转换为 Linux 和 Windows 之间的文件路径 windows 的 unix 路径工作正常 cygpath w cygdrive c CYGWIN CYGBuild build mak
  • Android - Google 云端硬盘 HTTP 请求

    我正在尝试编写一个可以将文件上传到 Google Drive 的应用程序 我选择通过原始 http 请求与此服务交互 因为我在 Android 上没有找到任何有用的 API 示例 而且它看起来比提供的库更轻量级 我用过https devel
  • 如何从 Eclipse 运行 Javah

    所以我试图在 Eclipse 中编译的 class 文件上运行 javah 工具 但我不知道该怎么做 我发现的例子只是说了一些类似 在你的类上运行 javah 的内容 但我真的不知道在 Eclipse 中哪里可以找到这样的命令行 如果有人能
  • 从句子生成 N 元语法

    如何生成字符串的 n 元语法 例如 String Input This is my car 我想用这个输入生成 n gram Input Ngram size 3 输出应该是 This is my car This is is my my
  • android 动态设置listview高度

    i have ExpandableListview inside ScrollView我知道这不好 但我也有 显示整个列表的唯一解决方案是使用代码设置其高度layoutParams relativeLayout LayoutParams 参
  • Angular Material mat-table 定义组件中可重用的列

    有人知道是否可以创建一个与 mat table 一起使用的 列 组件 我尝试为常用的列定义创建一个组件 但是在添加到表时出现错误 无法找到列选择器 我的列定义如下 Component selector iam select column t
  • 在 python 3.5 中模拟异步调用

    如何使用以下命令模拟从一个本机协程到另一个协程的异步调用unittest mock patch 我目前有一个相当尴尬的解决方案 class CoroutineMock MagicMock def await self args kwargs