Всем привет! Помогите, пожалуйста, перестать тупить)
У меня такая ситуация:
- тестируемое приложение (на котлине) в докере
- мок-сервер для этого приложения на python, а именно Flask
- тесты в pytest.
Хочется сделать фикстуры, которые будут без лишних вопросов поднимать окружение, но если докер я осилил, то как поднять моксервер я чот туплю.
conftest лежит в корне, мок - в mock/
main.pyПытаюсь сделать так. в
conftest.py:
from mock import main
@pytest.fixture(scope="module")
def launch_mock(request: pytest.FixtureRequest):
main.app.run()
request.addfinalizer(main.shutdown_server)
в
main.py:
from flask import Flask
from flask import request
app = Flask(__name__)
def shutdown_server():
func = request.environ.get('werkzeug.server.shutdown')
if func is None:
raise RuntimeError('Not running with the Werkzeug Server')
func()
Естесственно, когда вызывается фикстура
launch_mock
, процесс подписает, так как в нормальном режиме эксплуатации app есть консоль с логами. Как запустить мок, чтобы он был в фоне и стопался по завершению тестов?