首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >aiohttp模拟ClientSession响应

aiohttp模拟ClientSession响应
EN

Stack Overflow用户
提问于 2020-02-08 22:17:36
回答 1查看 576关注 0票数 1

出于测试目的,尝试模拟aiohttp.ClientSession的响应

我的代码如下所示:

代码语言:javascript
运行
复制
async def run_request(endpoint: str, **kwargs) -> dict:
    async with aiohttp.ClientSession() as session:
        async with session.post(endpoint, **kwargs) as response:
            response_json = await response.json()

            return {"response": response, "response_json": response_json}

我想用我想象中的东西来测试我的代码:

代码语言:javascript
运行
复制
@patch("aiohttp.ClientSession.post", <something>)
def test_run_request(self):

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2020-02-11 20:42:59

对于这个问题有很多不同的解决方案,我认为最简单的方法是使用aioresponse库。(https://github.com/pnuckowski/aioresponses)

但是,只有当您只使用ClientSession而不使用aiohttp.web.Application时,这才能正常工作。如果你使用CS作为aiohttp.web.Application的一部分,你会破坏应用程序test_client (pytest-aiohttp)。

另请参阅此问题How to mock aiohttp.client.ClientSession.get async context manager。这里有一些有用的例子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60127643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档