问题标签 [requests-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 投票
2 回答
3524 浏览

python - requests-mock:如何在模拟端点中匹配 POST 的有效负载

我做了什么

我编写了一个身份验证类,用于使用应用程序的API 密钥及其API 密钥秘密从 Twitter获取应用程序的不记名令牌,如Twitter 开发人员文档中所示。

我用requests_mock这种方式模拟了适当的端点:

我的测试方法是:

TwitterBasicAuth我写的身份验证类在哪里,夹具basic_auth_string是一个硬编码的字符串,可以通过适当地转换夹具获得api_keyapi_key_secret

它有效。

问题

但我真的对模拟端点不检查有效负载这一事实感到困扰。在这种特殊情况下,有效负载对于获取承载令牌至关重要。

我已经梳理了requests_mock(and responses, too) 的文档,但还没有弄清楚如何使端点仅在发布正确的有效负载时才使用不记名令牌进行响应。

请帮忙。

0 投票
1 回答
253 浏览

python - 对 python requests_mock 提供大量响应

我正在使用 python 请求来访问一些 api,最近我学习了 requests_mock 来模拟 http 响应以进行测试。我正在使用的 api 的响应非常大

传递大型响应文本的正确方法是什么?

0 投票
3 回答
1999 浏览

python-3.x - 如何在请求模拟中模拟多个网址

我有一个方法,它调用两个不同的端点并验证那里的响应。

我想像这样模拟pytest中的url:

它总是抛出错误

似乎是它唯一的嘲笑第一个网址。

那么有没有办法在一种方法中模拟多个 url?

0 投票
1 回答
185 浏览

python-3.x - 如何使用 request-mock 来测试带有请求的自定义身份验证处理程序?

我知道我可以轻松地使用 requests-mock 快速获取呼叫/自定义会话呼叫。现在我有一个自定义身份验证器:

当被嘲笑者get没有提高身份验证时。如何启动该身份验证处理程序?

0 投票
1 回答
882 浏览

python - `requests_mock` 适用于所有请求,即使它们未设置并抛出 NoMockAddress 异常

我发现requests_mock用作固定装置pytest适用于所有请求,即使它们没有设置。

我不确定这是requests_mock/pytest错误还是我遗漏了一些东西。最终,我不需要模拟 'api-b' 调用,但我不知道如何避免它。

我正在使用pytestrequests-mockpytest-mock为 API 端点编写集成测试。在后台,这个端点对我需要模拟的不同第三方 API 进行了多次调用。

其中一些调用可以被requests_mock. 但其中一些不能,因为他们从第三方模块内部进行调用。

我试图用pytest-mockmock最后一个,发现它基本上不起作用。 requests_mock仍在尝试模拟该调用并引发下一个错误: requests_mock.exceptions.NoMockAddress: No mock address: GET https://api-b.com/

0 投票
2 回答
350 浏览

python-3.x - 使用 request_mock 根据请求动态设置响应

我正在尝试模拟一个简单的 POST 请求,该请求从请求正文创建资源,并返回创建的资源。为简单起见,我们假设创建的资源与传入的完全相同,但在创建时给出了 ID。这是我的代码:

我最终遇到运行时错误JSONDecodeError('Expecting value: line 1 column 1 (char 0)')。我认为这是因为request.json()不包含我要查找的内容。如何访问请求正文?

0 投票
1 回答
778 浏览

python - 使用 requests_mock 检查请求中的查询字符串

如何检查 requests_mock 模拟的请求是否向 URL 添加了一些查询参数?

我有一个函数func,它在 URL 上使用一些查询字符串在 URL 上执行 HTTP POST,我想检查是否使用此查询字符串调用。

这是我的尝试,但失败了。

query是一个空字符串并且qs是一个空字典。

我确定我的函数在请求中附加了查询字符串。

我的func

0 投票
0 回答
81 浏览

python - pytest requests_mock 不适用于产量

我正在尝试测试旧代码,但遇到了 pytest 的 requests_mock 的问题。例子:

此示例将崩溃,因为模拟不起作用,但在将此代码更改为:

测试通过。这是故意的吗?也许我对 ing 有误解,yield或者应该以不同的方式处理这个测试用例。

0 投票
2 回答
76 浏览

python - 在另一个夹具中使用 requests_mock 时,模拟 URL 未转发给处理程序

我正在创建自己的夹具来模拟单元测试中所需的服务端点。为了拦截 HTTP 请求,我使用 requests_mock 如下:

Endpoint.__init__我执行以下操作:

在我的实际测试用例中,我注入端点并对其进行初始化:

实际上,它确实初始化了模拟端点,Mocker.start()如果我在那里设置断点,我会看到被调用。但是,稍后在测试用例中我得到以下信息:

因为它无法解析我给它的虚假 URL。那么,我是否以某种方式弄乱了处理程序注册,以使 Matcher 不会在那里触发请求?为什么 urlopen 仍在尝试解析主机?

0 投票
1 回答
161 浏览

python - Python Mock_requests:我可以在 Mocker 的 url 参数中使用通配符吗?与pytest一起使用时如何实现url的模式匹配?

我编写了一个测试,试图模拟异常作为请求获取操作的副作用。我正在使用该requests_mock库,如下面的代码清单所示:

是否可以使用通配符参数模拟 url,例如http://api.openweathermap.org/geo/1.0/direct/*?到目前为止,我可以模拟模拟超时错误的预期效果的唯一方法是在模拟中使用requests.ANYurl 参数。