Skip to content

Commit 59572ad

Browse files
author
Kolea Plesco
committed
Updated CM diff report filename generation
1 parent f2133ce commit 59572ad

3 files changed

Lines changed: 46 additions & 11 deletions

File tree

ted_sws/mapping_suite_processor/entrypoints/cli/cmd_conceptual_mapping_differ.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@
1212
from ted_sws.mapping_suite_processor.entrypoints.cli import CONCEPTUAL_MAPPINGS_FILE_TEMPLATE
1313
from ted_sws.mapping_suite_processor.services.conceptual_mapping_differ import \
1414
mapping_suite_diff_files_conceptual_mappings, mapping_suite_diff_repo_conceptual_mappings, \
15-
generate_conceptual_mappings_diff_html_report
15+
generate_conceptual_mappings_diff_html_report, generate_conceptual_mappings_diff_filename
1616

1717
CMD_NAME = "CMD_CONCEPTUAL_MAPPING_DIFFER"
1818

1919
DEFAULT_REPORT_OUTPUT_FOLDER = "."
20-
DEFAULT_REPORT_FILE_NAME = "conceptual_mappings_diff"
2120

2221
"""
2322
USAGE:
@@ -57,16 +56,22 @@ def _report(self, diff, files: list):
5756
"mapping_suite_ids": self.mapping_suite_ids,
5857
"files": files
5958
})
60-
report_file_file_name_json = Path(self.output_folder) / (DEFAULT_REPORT_FILE_NAME + ".json")
59+
diff_object = ConceptualMappingDiff(**diff)
60+
filename_base = generate_conceptual_mappings_diff_filename(diff_object)
61+
output_path: Path = Path(self.output_folder)
62+
63+
report_file_file_name_json = output_path / (filename_base + ".json")
6164
with open(report_file_file_name_json, 'w+') as report_file:
6265
report_file.write(json.dumps(diff, indent=2))
63-
report_file_file_name_html = Path(self.output_folder) / (DEFAULT_REPORT_FILE_NAME + ".html")
66+
67+
report_file_file_name_html = output_path / (filename_base + ".html")
6468
with open(report_file_file_name_html, 'w+') as report_file:
65-
report_file.write(
66-
generate_conceptual_mappings_diff_html_report(
67-
ConceptualMappingDiff(**diff)
68-
)
69-
)
69+
report_file.write(generate_conceptual_mappings_diff_html_report(diff_object))
70+
71+
self.log(
72+
f"Generated {LOG_WARN_TEXT.format(report_file_file_name_json)}" +
73+
f" and {LOG_WARN_TEXT.format(report_file_file_name_html)} report files" +
74+
f" in \"{LOG_WARN_TEXT.format(self.output_folder)}\" folder.")
7075

7176
@classmethod
7277
def _conceptual_mappings_file_path(cls, mappings_path, mapping_suite_id):

ted_sws/mapping_suite_processor/services/conceptual_mapping_differ.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
GITHUB_CONCEPTUAL_MAPPINGS_PATH = "{GITHUB_BASE}/raw/{GIT_BRANCH}/mappings/{MAPPING_SUITE_ID}/" + \
2222
MS_TRANSFORM_FOLDER_NAME + "/" + MS_CONCEPTUAL_MAPPING_FILE_NAME
2323

24+
DEFAULT_REPORT_FILE_NAME = "cm_diff"
25+
2426

2527
class ConceptualMappingDiffDataTransformer:
2628
data: dict
@@ -237,3 +239,19 @@ def generate_conceptual_mappings_diff_html_report(diff: ConceptualMappingDiff):
237239
)
238240
html_report = TEMPLATES.get_template(CONCEPTUAL_MAPPINGS_DIFF_HTML_REPORT_TEMPLATE).render(diff)
239241
return html_report
242+
243+
244+
def generate_conceptual_mappings_diff_filename(diff: ConceptualMappingDiff, prefix: str = DEFAULT_REPORT_FILE_NAME,
245+
ext: str = None) -> str:
246+
filename: str = prefix
247+
cm1_metadata: dict = diff.metadata.metadata[0]
248+
if cm1_metadata:
249+
filename += f"_{cm1_metadata['identifier']}_v{cm1_metadata['mapping_version']}"
250+
cm2_metadata: dict = diff.metadata.metadata[1]
251+
if cm2_metadata:
252+
if cm1_metadata:
253+
filename += "_vs"
254+
filename += f"_{cm2_metadata['identifier']}_v{cm2_metadata['mapping_version']}"
255+
if ext:
256+
filename += ext
257+
return filename

tests/e2e/mapping_suite_processor/conceptual_mapping_differ/test_conceptual_mapping_differ.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
from ted_sws.core.model.transform import ConceptualMapping, ConceptualMappingMetadata
1+
from ted_sws.core.model.transform import ConceptualMapping, ConceptualMappingMetadata, ConceptualMappingDiff
22
from ted_sws.data_manager.adapters.mapping_suite_repository import MS_TRANSFORM_FOLDER_NAME, \
33
MS_CONCEPTUAL_MAPPING_FILE_NAME
44
from ted_sws.mapping_suite_processor.services.conceptual_mapping_differ import mapping_suite_diff_conceptual_mappings, \
5-
mapping_suite_diff_files_conceptual_mappings, mapping_suite_diff_repo_conceptual_mappings
5+
mapping_suite_diff_files_conceptual_mappings, mapping_suite_diff_repo_conceptual_mappings, \
6+
generate_conceptual_mappings_diff_filename
67

78

89
def test_mapping_suite_diff_conceptual_mappings():
@@ -53,3 +54,14 @@ def test_mapping_suite_diff_repo_conceptual_mappings(github_mapping_suite_id, pa
5354
mapping_suite_id=[github_mapping_suite_id, "package_F03_test"]
5455
)
5556
assert diff['data']['original']
57+
58+
59+
def test_generate_conceptual_mappings_diff_filename(package_folder_path, package_F03_folder_path):
60+
""""""
61+
filepath1 = package_folder_path / MS_TRANSFORM_FOLDER_NAME / MS_CONCEPTUAL_MAPPING_FILE_NAME
62+
filepath2 = package_F03_folder_path / MS_TRANSFORM_FOLDER_NAME / MS_CONCEPTUAL_MAPPING_FILE_NAME
63+
64+
diff = mapping_suite_diff_files_conceptual_mappings([filepath1, filepath2])
65+
filename = generate_conceptual_mappings_diff_filename(ConceptualMappingDiff(**diff), "conceptual_mappings_diff",
66+
".json")
67+
assert filename == "conceptual_mappings_diff_F03_v0.0.1_vs_package_F03_v2.2.0.json"

0 commit comments

Comments
 (0)