Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions converter/converter/cisu/identical_cisu_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from typing import Dict, Any

from converter.cisu.base_cisu_converter import BaseCISUConverter


class IdenticalCISUConverter(BaseCISUConverter):
@classmethod
def from_rs_to_cisu(cls, edxl_json) -> Dict[str, Any]:
return edxl_json

@classmethod
def from_cisu_to_rs(cls, edxl_json: Dict[str, Any]) -> Dict[str, Any]:
return edxl_json
13 changes: 13 additions & 0 deletions converter/converter/cisu/reference/reference_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from converter.cisu.identical_cisu_converter import IdenticalCISUConverter


class ReferenceConverter(IdenticalCISUConverter):
REFERENCE_MESSAGE_TYPE = "reference"

@classmethod
def get_rs_message_type(cls) -> str:
return cls.REFERENCE_MESSAGE_TYPE

@classmethod
def get_cisu_message_type(cls) -> str:
return cls.REFERENCE_MESSAGE_TYPE
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from converter.cisu.create_case.create_case_cisu_converter import (
CreateCaseCISUConverter,
)
from converter.cisu.reference.reference_converter import ReferenceConverter
from converter.cisu.resources_info.resources_info_cisu_converter import (
ResourcesInfoCISUConverter,
)
Expand Down Expand Up @@ -80,6 +81,8 @@ def select_conversion_strategy(message_content):
return CreateCaseCISUConverter
elif "resourcesInfo" in message_content or "resourcesInfoCisu" in message_content:
return ResourcesInfoCISUConverter
elif "reference" in message_content:
return ReferenceConverter
else:
deducted_message_type = extract_message_type_from_message_content(
message_content
Expand Down
104 changes: 104 additions & 0 deletions converter/tests/cisu/snapshots/snap_test_reference_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# -*- coding: utf-8 -*-
# snapshottest: v1 - https://goo.gl/zC4yUc
from __future__ import unicode_literals

from snapshottest import Snapshot


snapshots = Snapshot()

snapshots[
"TestSnapshotReferenceConverter::test_exhaustive_snapshot_cisu_to_rs 1"
] = """{
"distributionID": "fr.health.samuA_2608323d-507d-4cbf-bf74-52007f8124ea",
"senderID": "fr.health.samuA",
"dateTimeSent": "2022-09-27T08:23:34+02:00",
"dateTimeExpires": "2072-09-27T08:23:34+02:00",
"distributionStatus": "Actual",
"distributionKind": "Report",
"descriptor": {
"language": "fr-FR",
"explicitAddress": {
"explicitAddressScheme": "hubex",
"explicitAddressValue": "fr.health.samuB"
}
},
"content": [
{
"jsonContent": {
"embeddedJsonContent": {
"message": {
"messageId": "2608323d-507d-4cbf-bf74-52007f8124ea",
"sender": {
"name": "samuA",
"URI": "hubsante:fr.health.samuA"
},
"sentAt": "2022-09-27T08:23:34+02:00",
"status": "Actual",
"kind": "Report",
"recipient": [
{
"name": "samuB",
"URI": "hubsante:fr.health.samuB"
}
],
"reference": {
"distributionID": "fr.health.samuB_2607723d-507d-4cbf-bf74-12345f7064cd",
"refused": false,
"errorDistributionID": "2607723d-507d-4cbf-bf74-12345f7064cd",
"step": "ERREUR"
}
}
}
}
}
]
}"""

snapshots[
"TestSnapshotReferenceConverter::test_exhaustive_snapshot_rs_to_cisu 1"
] = """{
"distributionID": "fr.health.samuA_2608323d-507d-4cbf-bf74-52007f8124ea",
"senderID": "fr.health.samuA",
"dateTimeSent": "2022-09-27T08:23:34+02:00",
"dateTimeExpires": "2072-09-27T08:23:34+02:00",
"distributionStatus": "Actual",
"distributionKind": "Report",
"descriptor": {
"language": "fr-FR",
"explicitAddress": {
"explicitAddressScheme": "hubex",
"explicitAddressValue": "fr.health.samuB"
}
},
"content": [
{
"jsonContent": {
"embeddedJsonContent": {
"message": {
"messageId": "2608323d-507d-4cbf-bf74-52007f8124ea",
"sender": {
"name": "samuA",
"URI": "hubsante:fr.health.samuA"
},
"sentAt": "2022-09-27T08:23:34+02:00",
"status": "Actual",
"kind": "Report",
"recipient": [
{
"name": "samuB",
"URI": "hubsante:fr.health.samuB"
}
],
"reference": {
"distributionID": "fr.health.samuB_2607723d-507d-4cbf-bf74-12345f7064cd",
"refused": false,
"errorDistributionID": "2607723d-507d-4cbf-bf74-12345f7064cd",
"step": "ERREUR"
}
}
}
}
}
]
}"""
15 changes: 15 additions & 0 deletions converter/tests/cisu/test_identical_cisu_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from converter.cisu.identical_cisu_converter import IdenticalCISUConverter

mock_message = {"message": {"content": "This is a mock CISU message.", "status": "200"}}


def test_from_rs_to_cisu():
initial_message = mock_message.copy()
converted_message = IdenticalCISUConverter.from_rs_to_cisu(initial_message)
assert converted_message == mock_message


def test_from_cisu_to_rs():
initial_message = mock_message.copy()
converted_message = IdenticalCISUConverter.from_cisu_to_rs(initial_message)
assert converted_message == mock_message
23 changes: 23 additions & 0 deletions converter/tests/cisu/test_reference_converter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import json
from snapshottest import TestCase
from converter.cisu.reference.reference_converter import ReferenceConverter
from tests.constants import TestConstants
from tests.test_helpers import TestHelper


class TestSnapshotReferenceConverter(TestCase):
def test_exhaustive_snapshot_rs_to_cisu(self):
message = TestHelper.create_edxl_json_from_sample(
TestConstants.EDXL_HEALTH_TO_HEALTH_ENVELOPE_PATH,
"tests/fixtures/RC-REF/RC-REF_V3.0_exhaustive_fill.json",
)
output_data = ReferenceConverter.from_rs_to_cisu(message)
self.assertMatchSnapshot(json.dumps(output_data, indent=2))

def test_exhaustive_snapshot_cisu_to_rs(self):
message = TestHelper.create_edxl_json_from_sample(
TestConstants.EDXL_HEALTH_TO_HEALTH_ENVELOPE_PATH,
"tests/fixtures/RC-REF/RC-REF_V3.0_exhaustive_fill.json",
)
output_data = ReferenceConverter.from_cisu_to_rs(message)
self.assertMatchSnapshot(json.dumps(output_data, indent=2))
Loading