问题标签 [pytest-mock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

pytest - Pytest-mock 不修补类模块中的导入函数

pytest-mock 补丁无法按预期工作。我的代码:

utils.py

classes.py

test_classes.py

这失败了,返回的是42而不是21.

0 投票
0 回答
211 浏览

python - 使用pytest,如何正确模拟外部模块的功能?

问题描述

我正在使用 ibis 框架,我想模拟它进行一些单元测试。

我想模拟两个函数 un ibis:

这些函数在自定义类中使用:

基于这个文档,我以我的模拟测试文件结束(这个测试是 WIP,这就是它没有做太多的原因):

但是,在该测试文件上运行 pytest 时,出现以下错误:

\anaconda\lib\site-packages\ibis\ init .py'> 没有属性“hdfs_connect”

问题

就我而言,我怎样才能为我的单元测试正确地模拟这两个函数?

编辑 1

看来我的本地机器没有我们集群使用的相同版本的 ibis。

我的本地是1.4.0,而集群是0.12.0. 朝这个方向研究。

0 投票
2 回答
74 浏览

python - 修补已修补的类的方法

我正在尝试修补一个类及其方法,这是我正在尝试做的一个示例:

我有这个类,我想单独修补这个类和它的方法,我没有创建一个假类,因为在我的例子中,这个类很复杂,所以我希望创建这个类,然后只修补一个方法有些有课,我正在尝试这样做:

另外,我试图做这样的事情:

在这两种情况下,我得到了这个错误:

我正在修补该方法,因为我有另一个要测试的另一个类的方法

0 投票
1 回答
85 浏览

python - 在单元测试中,如何在单元测试中传递模拟对象以便它可以在'with'上下文中使用?

我正在尝试为以下功能编写单元测试:

我的单元测试文件:

当我在 pytest 中运行此测试时,出现以下错误。

这里的问题是我们正在传递一个模拟对象,该对象将在“with”上下文中使用。那时,我们收到上述错误。

如何模拟这样的对象以便它可以在with上下文中使用?

版本信息:
python 3.7
pytest 6.2.3

0 投票
1 回答
491 浏览

python-3.x - 如何为 grpc 单元测试(python)创建模拟上下文

在正常的 grpc 通信中,grpc 会自动创建一个上下文来处理请求。如何创建一个模拟上下文以通过我的单元测试调用传递,以便我的服务函数有一个要操作的对象?

目前,如果代码接收到 NoneType 作为上下文,我会跳过上下文调用,但这不是一个好的解决方案。

0 投票
0 回答
123 浏览

python - 如何在同一个函数上使用模拟和参数化

我试图在我的代码中模拟 3 个函数并参数化另外两个变量。

这里有一个例子:

现在我想参数化 a,b 变量,这样我就可以用几个不同的测试用例运行代码。

我收到此错误:

TypeError: test_function() takes exactly 6 arguments (4 given)

有谁知道为什么?

0 投票
0 回答
351 浏览

python - 在单元测试中测试 postgresql - 模拟和单元测试库

我将在 Python 中启动一个项目,该项目将处理大量数据库操作,这意味着我必须编写大量单元测试。

我正在阅读有关模拟数据库连接、游标和为我的单元测试执行 sql 查询的信息(即将出现)。

我遇到了不同的库来做到这一点:

  1. https://github.com/tk0miya/testing.postgresql - 这似乎是最好的,因为我可以在用户空间中启动一个数据库实例,但在 2017 年的最后一次提交中似乎没有维护。(顺便说一句,这就是我为我所做的Golang 项目 - 使用 Golang Docker API 作为设置在 Docker 中启动整个 Postgres 实例)

  2. 许多博客推荐pytest-postgresql,但是,我一直无法理解如何使用它。这似乎是一个非常活跃的项目,最后一次提交是在几个月前。

  3. 一些博客也建议pytest-pgsql,与上面类似,我无法理解如何设置和使用它。

任何其他建议也将受到欢迎。

0 投票
1 回答
139 浏览

python - 模拟或避免 pytest 的 cognito 身份验证和组权限

我有一个烧瓶应用程序,我正在尝试为我构建的服务实现 pytest。所有路由都需要 cognito 身份验证或 cognito 组权限。有没有办法可以模拟或避免认知?从我在网上阅读的所有文章中,到目前为止没有任何帮助。

下面的示例将如何实现 pytest?

0 投票
1 回答
73 浏览

python - 对进行 API 调用的函数的返回值进行 Pytest

我有一个进行 API 调用的函数,我想response将该 API 调用的返回值 () 设为{"message":"NoPong"}这样,以便ValueError引发 。到目前为止,我有

我得到的pytest结果是

为什么 pytest 抱怨我的_check_connection功能?它使用 key 正确访问字典message,并且在 pytest 之外工作。

0 投票
0 回答
12 浏览

python - Pytest mock - 在上下文管理器中输入 __enter__ 时返回其他对象?

在我的代码中,我使用了一些具有上下文管理器的 3rd 方类,例如,我将它与with.

我想测试使用该对象的方法,所以我编写了一个模拟对象,我希望将其用于代替 3rd 方库类。

如何修补和模拟它,以便在__enter__调用时返回我的对象​​?