refactoring: made docker-compose api call non-autousing

This commit is contained in:
Matthias Bisping 2022-04-26 13:01:15 +02:00
parent 64624a3fd3
commit 01daa634ec
3 changed files with 14 additions and 11 deletions

View File

@ -59,7 +59,7 @@ def mock_make_load_data():
@pytest.fixture(params=["minio", "aws"], scope="session")
def storage(client_name, bucket_name, request):
def storage(client_name, bucket_name, request, docker_compose):
logger.debug("Setup for storage")
storage = Storage(get_adapter(client_name, request.param))
storage.make_bucket(bucket_name)
@ -69,7 +69,7 @@ def storage(client_name, bucket_name, request):
storage.clear_bucket(bucket_name)
@pytest.fixture(scope="session", autouse=True)
@pytest.fixture(scope="session", autouse=False)
def docker_compose(sleep_seconds=30):
logger.info(f"Starting docker containers with {COMPOSE_PATH}/docker-compose.yml...")
compose = testcontainers.compose.DockerCompose(COMPOSE_PATH, compose_file_name="docker-compose.yml")
@ -110,7 +110,7 @@ def get_queue_manager(queue_manager_name) -> QueueManager:
@pytest.fixture(scope="session")
def queue_manager(queue_manager_name):
def queue_manager(queue_manager_name, docker_compose):
def close_connections():
if queue_manager_name == "pika":
try:

View File

@ -1,15 +1,22 @@
import json
from operator import itemgetter
import pytest
import fpdf
import pytest
from test.server import set_up_processing_server
def processor_fn(payload):
data = payload["data"].encode()
metadata = payload["metadata"]
response_payload = {"metadata_type": str(type(metadata)), "data_type": str(type(data))}
return response_payload
@pytest.fixture
def server():
server = set_up_processing_server()
server = set_up_processing_server(processor_fn)
server.config.update({"TESTING": True})
return server

View File

@ -3,7 +3,7 @@ import json
from flask import Flask, jsonify, request
def set_up_processing_server():
def set_up_processing_server(process_fn):
app = Flask(__name__)
@app.route("/ready", methods=["GET"])
@ -15,11 +15,7 @@ def set_up_processing_server():
@app.route("/process", methods=["POST"])
def process():
payload = json.loads(request.json)
data = payload["data"].encode()
metadata = payload["metadata"]
response_payload = {"metadata_type": str(type(metadata)), "data_type": str(type(data))}
response_payload = process_fn(payload)
return jsonify(response_payload)
return app