问题标签 [python-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 投票
0 回答
361 浏览

django - Django 前后信号模拟

由于某些原因,视图中存在前信号和后信号的防止。

如何模拟 django pre_save 和 post_save 信号以检查它们是否未被 MyModel 调用?(没有任何接收器可以检查它是否没有被调用)

我试过这个,但它不起作用:

0 投票
2 回答
2285 浏览

python - 测试后在 Python 中销毁一个 mock

假设我有几个这样的测试:

假设我在 MyLib 中有这样的东西:

在 my_first_test 中,我在模拟 my_lib.my_function 并在函数执行时返回 True。在这个例子中,我的断言是调用 run_my_function(),它是同一个库中的另一个函数,除其他外,它调用 my_lib.my_function。但是当执行 my_second_test 时,我不希望调用模拟函数,而是调用真实函数。所以我想我需要在运行 my_first_test 之后以某种方式破坏模拟,可能是在 tearDown() 期间。我如何摧毁那个模拟?

我编辑了我的原始问题以添加更多细节,因为看起来不太清楚,对此感到抱歉。

0 投票
1 回答
10375 浏览

python - 如何使用临时文件系统在 python 中模拟 os.walk?

我正在尝试测试一些使用 os.walk 的代码。我想创建一个临时的内存文件系统,我可以用 os.walk 将返回的示例(空)文件和目录填充它。这应该为我节省了模拟 os.walk 调用以模拟递归的复杂性。

具体来说,我要测试的代码是:

这在python中可能吗?

0 投票
3 回答
1951 浏览

python - python中的严格模拟

python中是否有任何等效的严格模拟?一些报告意外调用模拟方法的机制(本示例中的 action.step2() ),就像 GoogleMock 框架中的这样。

0 投票
1 回答
822 浏览

python - 在python中用mock模拟多个响应

我正在尝试为我使用 mock 编写的 Rest 客户端编写单元测试

可以说这个类是Foo并且有两种方法..get_foo()get_bar()

这是我的测试课

我基本上使用本教程到达这里:http ://seminar.io/2013/09/27/testing-your-rest-client-in-python/

但是现在,我也想测试 bar .. 我如何用这种方法测试 bar?谢谢

0 投票
1 回答
756 浏览

python - 如何在 Django 模型上模拟链式方法

我正在尝试使用 Python 模拟库来模拟 Django 模型上的方法:

上面的代码工作正常,但在我将代码更改为以下代码后开始返回单个 MagicMock 对象:

无论如何,即使我在 Django 模型上链接方法调用,我也可以正确地做到这一点?

0 投票
1 回答
2587 浏览

python - 在python中模拟类对象方法的返回

我想模拟一种方法以在我的一个模拟类中返回测试值。我遇到的问题是返回测试值,模拟方法返回一个 MagicMock 类型的对象。

该代码非常做作,但说明了问题。

苏特(sut.py):

测试(模拟.py):

0 投票
3 回答
10313 浏览

python - 为迭代定制 unittest.mock.mock_open

我应该如何自定义 unittest.mock.mock_open 来处理这段代码?

我的第一次尝试尝试了read_data

这失败了,大概是因为代码没有使用 read、readline 或 readlines。unittest.mock.mock_open的文档说,“read_data 是文件句柄的 read()、readline() 和 readlines() 方法返回的字符串。对这些方法的调用将从 read_data 获取数据,直到它耗尽“

由于文档没有提示需要什么样的自定义,我尝试return_valueside_effect. 都没有奏效。

0 投票
3 回答
174653 浏览

python - Python模拟多个返回值

我正在使用 pythons mock.patch 并想更改每个调用的返回值。这里需要注意的是:被修补的函数没有输入,所以我不能根据输入更改返回值。

这是我的代码供参考。

我的测试代码:

io.prompt只是“输入”的平台独立(python 2和3)版本。所以最终我试图模拟用户的输入。我曾尝试使用列表作为返回值,但这并不能正常工作。

你可以看到,如果返回值是无效的,我会在这里得到一个无限循环。所以我需要一种方法来最终改变返回值,这样我的测试才能真正完成。

(回答这个问题的另一种可能方法是解释我如何在单元测试中模仿用户输入)


不是这个问题的重复,主要是因为我没有能力改变输入。

关于这个问题的答案的评论之一是相同的,但没有提供答案/评论。

0 投票
0 回答
143 浏览

python - 如何模拟从 try/except 块内部调用的两个函数?

我有一个函数 foo 是这样的:

我正在尝试通过执行以下操作使用 Python 模拟库对其进行测试:

但是,这样做不会修补它们中的任何一个,而是会得到适当的response对象StringIOStringIO如果我从补丁中省略,我会MagicMock按预期得到一个对象(而不是一个response对象)。我怎样才能使它正常工作?