使用请求模拟捕获URL参数

时间:2019-02-28 20:05:44

标签: python mocking python-requests pytest

我正在使用requests-mockdynamic response模拟外部服务。

服务的URL类似于http://test/containers/test/1234,其中1234是我要动态生成的对象ID。

我已经尝试过使用正则表达式匹配器,但似乎无法在动态响应回调中获取match对象。

是否可以“捕获” URL的最后一位?

1 个答案:

答案 0 :(得分:0)

传递给您的回调的第一个参数将是请求。它具有一个公共path属性,您可以使用它:

>>> def callback(request, context): 
...     print("request path: ", request.path) 
... 
>>> with requests_mock.Mocker() as m: 
...     m.get("http://test/containers/test/1234", text=callback) 
...     requests.get("http://test/containers/test/1234") 
... 
request path:  /containers/test/1234