问题标签 [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.
python-3.x - Python:使用 Click 模拟 AWS
我有一个 click cli 应用程序,我正在尝试模拟 AWS SSM Parameter Store,但 runner.invoke 没有返回预期结果。
这是test_demo.py
:
测试结果如下:
我希望 cli 的输出与无 cli 相同。
点击代码:
manage_secrets 代码:
我添加了一个返回值,它只是默认值,而不是解析,我认为 ssm.get_parameter 是一样的。我不确定我错过了什么。任何指示或建议?
python-3.x - 通过模拟获取应用的函数输入数据框
我有以下功能
在我的测试中,我想查看在所有链接操作之后构建的数据框,并在调用之前检查它是否一切正常do_something_with_each_row
。最后一个函数不返回数据帧(它只是迭代所有行,类似于iterrow
)。
我试图模拟这样的apply
函数:
但在这种情况下,我无法访问输入apply
以测试其内容的数据框。
我还尝试模拟do_something_with_each_row
:
但是这次我有所有带有行参数的调用,但它们都有None
值。
如何获取apply
调用函数的数据帧并检查它是否确实与以下内容相同:
我正在使用0.24.2
pandas 版本,升级到 pandas1.0.5
并不会改变此事。
我尝试在熊猫问题中进行搜索,但没有找到有关此主题的任何内容。
python - 在 pytest-mock 中模拟线程调用
我有一个简单的代码库,如下所示:
第一次start
调用函数时,线程将运行,而下一次调用它时不会因为设置了 flag(_run_thread)。
代码本身运行得很好。
但是,当我尝试对此代码运行测试时,它无法按预期工作。下面是我的测试代码:
因此,由于我实际上不希望循环,因此我只想模拟该counter
函数,然后在其中设置标志,以便实际线程不会运行。
我看到以下错误。
我不知道我哪里出错了。任何线索,我将不胜感激。
python - 如何使用 pytest-mock 指定模拟函数的返回值?
下面打印False
。这不是嘲笑的方式吗?
我尝试更改函数的路径,但它出错了,所以路径似乎是正确的。我错过了什么?
python - 模拟类的补丁属性
我正在尝试模拟一堂课。
我试图模拟的类如下所示(为简洁起见,已删除行):
如您所见,它有一个名为 的属性clients
。
我的测试方法:
我的单元测试如下所示:
问题是......我如何clients
在我的测试中设置属性,因为被测方法需要设置它?(我可以将它设置为None
,但我只需要能够设置它。)
使用当前代码,我的应用程序返回错误:
谢谢!
python-3.x - 在 pytest 中模拟和验证类方法的参数
我正在尝试在我的 pytests 中使用 pytest-mock。
如何在同一个测试中模拟一个对象方法并验证该对象方法的参数?
在我的示例中,我想模拟类 Engine 中的方法“test_function”。我想检查一次使用预期参数调用方法“test_function”。
我目前使用 monkeypatch 和 mocker.patch.object 的方法很复杂,而且不起作用。当 mocker.patch.object 处于活动状态时,不会调用 mock_function。
此外,是否也可以使用类对象测试“assert_called_one_with”?
python - 如何检查是否使用预期的对象调用方法
如何在 pytest-mock 中测试方法是否已使用相应的对象调用?
我的对象如下:
我的测试如下:
目前我收到错误消息:
pytest 似乎检查两个对象是否具有相同的地址。我只想检查两个对象是否具有相同的参数。我怎样才能检查这个?
python - 如何使用 pytest 模拟在 __init__ 方法下初始化的对象
我一直在试图弄清楚如何为我在类的init方法中初始化的对象创建一个模拟。我一直在使用 pytest 和 mockito 来尝试做同样的事情,但运气最差。
我在这里有两个问题:
- 如何初始化我在init方法中定义的对象
- 如果对象是boto3客户端,将模拟工作,这是最有效的方式
我试图模拟的代码如下所示:
../胶水.py
有人可以帮忙吗?
python - Python pytest 模拟失败,函数调用断言为“assert None”
我正在尝试模拟对 boto3 的一些调用,看起来被模拟的函数正在返回正确的值,并且看起来如果我更改断言使其不再匹配断言中传递的内容失败,因为输入参数不匹配,但是,如果我使它们匹配,则断言失败并显示:
dynamo DB 对象是一个全局变量。
我的单元测试看起来像:
如果我更改 的预期值,我无法弄清楚出了什么问题,assert_called_with
例如:
测试失败:
因此,当预期输入和实际输入不同时,它会因此而失败,但是当它们相同并且测试应该通过时,它就会失败,因为就好像该函数甚至从未被调用过。
python - 如何在 python 中使用 pytest 和 mocks 为使用 http 客户端库的函数创建单元测试?
如何使用 pytest 模拟测试以下函数?
通过使用 pytest_mock 库并参考此处的代码,我能够对get_response()
用于执行某些操作的其他函数进行单元测试。因此,如果我们甚至需要使用 pytest_mock 库来执行单元测试,那就没问题了get_response
话虽如此,到目前为止我所看到的解决方案都是针对requests
&unittest
库的
我想避免创建一个 http 服务器或烧瓶服务器这个基于模拟的单元测试。
Pytest 文档 似乎建议我需要一个补丁来进行http.client.HTTPSConnection
单元测试conn.request()
。是这样吗?conn.getresponse()
get_response()
一个最小的工作示例会有所帮助。提前致谢!