带有服务器的Pytest插件,用于捕获HTTP请求。
pytest-catch-server的Python项目详细描述
Pytest Catch服务器
Pytest插件,带有服务器固定装置,用于捕获HTTP请求。 它对于集成测试或测试具有 网络副作用,如向第三方服务(DataDog APM、Sentry等)报告。在
安装
您可以通过pip
安装“pytest catch server”:
pip install pytest-catch-server
使用
这个插件有三个fixture。主catch_server
用于测试:
在更真实的例子中,您可能需要修补全局模块(比如一些跟踪器)。在
它将在每个测试之间刷新捕获的requests
列表。在
捕捉这些方法:GET
,POST
,PUT
,PATCH
,DELETE
您可能需要设置应用程序fixture,并将catch server作为依赖项。你可以
使用会话范围的fixturebackground_catch_server
来实现:
@pytest.fixture(scope="session")defapp(background_catch_server):tracer_dsn=f"http://{background_catch_server.host}:{background_catch_server.port}"returncreate_app(tracer_dsn=tracer_dsn)deftest_tracing(app,catch_server):app.do_something_that_calls_tracer()assertcatch_server.requests==[{"method":"PUT","path":"/trace","data":b"..."}]
catch服务器的端口是一个随机空闲端口。如果要使用特定端口,则
可以重写测试中返回免费的catch_server_port
fixture
端口号。在
如果您遇到任何问题,请 file an issue沿 有详细的描述。在
贡献
捐款是非常欢迎的。可以使用运行测试 tox,请确保在 至少在你提交请求前保持不变。在
已为此项目设置Pre-commit挂钩。拜托 {a9安装完毕} 本次回购。在
许可证
根据MIT条款分配 许可证,“pytest catch server”是免费的开源软件。在
脚注
这个pytest插件是用Cookiecutter生成的 和@hackebrot'scookiecutter-pytest-plugin模板。在
- 项目
标签: