All components from payload processing downwards are tested. Tests that depend on docker compose have been disabled by default because they take too long to use during development. Furthermore, the queue manager tests are not stable, a refactoring with inversion of control is urgently needed to make the components properly testable. The storage tests are stable and should be run once before releasing, this should be implemented via the CI script. Also adds, if present, tenant Id and operation kwargs to storage and queue response.
49 lines
2.1 KiB
Python
49 lines
2.1 KiB
Python
import pytest
|
|
|
|
from pyinfra.config import get_config
|
|
from pyinfra.payload_processing.payload import (
|
|
get_queue_message_payload_parser,
|
|
format_to_queue_message_response_body,
|
|
format_service_processing_result_for_storage,
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def payload_parser():
|
|
config = get_config()
|
|
return get_queue_message_payload_parser(config)
|
|
|
|
|
|
@pytest.mark.parametrize("x_tenant_id", [None, "klaus"])
|
|
@pytest.mark.parametrize("optional_processing_kwargs", [{}, {"operation": "test"}])
|
|
class TestPayloadParsing:
|
|
def test_legacy_payload_parsing(self, payload_parser, legacy_payload, legacy_parsed_payload):
|
|
parsed_payload = payload_parser(legacy_payload)
|
|
assert parsed_payload == legacy_parsed_payload
|
|
|
|
def test_payload_parsing(self, payload_parser, payload, parsed_payload):
|
|
parsed_payload = payload_parser(payload)
|
|
assert parsed_payload == parsed_payload
|
|
|
|
|
|
@pytest.mark.parametrize("x_tenant_id", [None, "klaus"])
|
|
@pytest.mark.parametrize("optional_processing_kwargs", [{}, {"operation": "test"}])
|
|
class TestPayloadFormatting:
|
|
def test_legacy_payload_formatting_for_response(self, legacy_parsed_payload, legacy_queue_response_payload):
|
|
formatted_payload = format_to_queue_message_response_body(legacy_parsed_payload)
|
|
assert formatted_payload == legacy_queue_response_payload
|
|
|
|
def test_payload_formatting_for_response(self, parsed_payload, queue_response_payload):
|
|
formatted_payload = format_to_queue_message_response_body(parsed_payload)
|
|
assert formatted_payload == queue_response_payload
|
|
|
|
def test_legacy_payload_formatting_for_storage(
|
|
self, legacy_parsed_payload, processing_result_json, legacy_storage_payload
|
|
):
|
|
formatted_payload = format_service_processing_result_for_storage(legacy_parsed_payload, processing_result_json)
|
|
assert formatted_payload == legacy_storage_payload
|
|
|
|
def test_payload_formatting_for_storage(self, parsed_payload, processing_result_json, storage_payload):
|
|
formatted_payload = format_service_processing_result_for_storage(parsed_payload, processing_result_json)
|
|
assert formatted_payload == storage_payload
|