Introduces new payload parsing logic to be able to process absolute file paths. The queue message is expected to contain the keys "targetFilePath" and "responseFilePath". To ensure backward-compatibility, the legacy "dossierId", "fileId" messages are still supported.
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
import pytest
|
|
|
|
from pyinfra.payload_processing.payload import (
|
|
QueueMessagePayloadParser,
|
|
LegacyQueueMessagePayload,
|
|
)
|
|
from pyinfra.utils.file_extension_parsing import make_file_extension_parser
|
|
|
|
|
|
@pytest.fixture
|
|
def expected_parsed_payload(x_tenant_id):
|
|
return LegacyQueueMessagePayload(
|
|
dossier_id="test",
|
|
file_id="test",
|
|
x_tenant_id=x_tenant_id,
|
|
target_file_extension="json.gz",
|
|
response_file_extension="json.gz",
|
|
target_file_type="json",
|
|
target_compression_type="gz",
|
|
response_file_type="json",
|
|
response_compression_type="gz",
|
|
target_file_path="test/test.json.gz",
|
|
response_file_path="test/test.json.gz",
|
|
processing_kwargs={},
|
|
)
|
|
|
|
|
|
@pytest.fixture
|
|
def file_extension_parser(allowed_file_types, allowed_compression_types):
|
|
return make_file_extension_parser(allowed_file_types, allowed_compression_types)
|
|
|
|
|
|
@pytest.fixture
|
|
def payload_parser(file_extension_parser):
|
|
return QueueMessagePayloadParser(file_extension_parser, allowed_processing_parameters=["operation"])
|
|
|
|
|
|
@pytest.mark.parametrize("allowed_file_types,allowed_compression_types", [(["json", "pdf"], ["gz"])])
|
|
class TestPayload:
|
|
@pytest.mark.parametrize("x_tenant_id", [None, "klaus"])
|
|
def test_payload_is_parsed_correctly(self, payload_parser, payload, expected_parsed_payload):
|
|
payload = payload_parser(payload)
|
|
assert payload == expected_parsed_payload
|
|
|
|
@pytest.mark.parametrize(
|
|
"extension,expected",
|
|
[
|
|
("json.gz", ("json", "gz")),
|
|
("json", ("json", None)),
|
|
("prefix.json.gz", ("json", "gz")),
|
|
],
|
|
)
|
|
def test_parse_file_extension(self, file_extension_parser, extension, expected):
|
|
assert file_extension_parser(extension) == expected
|