【发布时间】:2023-01-03 22:54:14
【问题描述】:
我有一些我想测试的代码,它是一个相当普通的 GET 请求包装器,但它的实现使用不同的 ID 多次从 API 请求数据。
为测试添加模拟 JSON 响应是有问题的,因为有数百个调用使用这些 ID,而我们希望针对一个固定响应进行测试。
目标 URI 看起来像 https://someurl.com/api/v1/id/1234/data?params
我们遇到的问题是不想为每个模拟端点添加一行代码。
例如。而不是拥有
mocker.get('https://someurl.com/api/v1/id/1234/data?params',
json={},
status_code=200)
mocker.get('https://someurl.com/api/v1/id/5678/data?params',
json={},
status_code=200)
我想实现某种通配符匹配,如下所示:
mocker.get(re.compile('https://someurl.com/api/v1/id/*/data?params'),
json={},
status_code=200)
如果我正确理解文档,这应该是可能的,但这会返回错误:
Failed: [undefined]requests_mock.exceptions.NoMockAddress: No mock address: GET https://someurl.com/api/v1/id/1234/data?params
【问题讨论】:
标签: python mocking wildcard requests-mock