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