Skip to content

Commit 4630b39

Browse files
committed
Fix reporting serialization issue
1 parent 51bb401 commit 4630b39

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

src/folio_migration_tools/mapper_base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ def get_mapped_ref_data_value(
248248
) from exception
249249

250250
def handle_transformation_field_mapping_error(self, index_or_id, error):
251-
self.migration_report.add("FieldMappingErrors", error)
251+
error_key = f"{error.message}\t{error.data_value}"
252+
self.migration_report.add("FieldMappingErrors", error_key)
252253
error.index_or_id = error.index_or_id or index_or_id
253254
error.log_it()
254255
self.migration_report.add_general_statistics(i18n_t("Field Mapping Errors found"))

tests/test_mapping_file_mapper_base.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import csv
22
import functools
33
import io
4+
import json
45
from pathlib import Path
56
from unittest.mock import Mock
67

@@ -9,6 +10,7 @@
910
from folioclient import FolioClient
1011

1112
from folio_migration_tools.custom_exceptions import (
13+
TransformationFieldMappingError,
1214
TransformationProcessError,
1315
TransformationRecordFailedError,
1416
)
@@ -6323,4 +6325,21 @@ def test_validate_array_item_missing_required_log_it_output(
63236325
assert "PO-12345" in log_msg
63246326
assert "Required properties missing in poLines item" in log_msg
63256327
assert "orderFormat" in log_msg
6326-
assert "source" in log_msg
6328+
6329+
6330+
def test_field_mapping_errors_report_is_json_serializable(mocked_file_mapper):
6331+
err = TransformationFieldMappingError(
6332+
index_or_id="rec-1",
6333+
message="Required properties missing in poLines item",
6334+
data_value="orderFormat,source",
6335+
)
6336+
6337+
mocked_file_mapper.handle_transformation_field_mapping_error("rec-1", err)
6338+
6339+
output = io.StringIO()
6340+
mocked_file_mapper.migration_report.write_json_report(output)
6341+
payload = json.loads(output.getvalue())
6342+
6343+
assert "FieldMappingErrors" in payload
6344+
assert isinstance(payload["FieldMappingErrors"], dict)
6345+
assert payload["FieldMappingErrors"]["Required properties missing in poLines item\torderFormat,source"] == 1

0 commit comments

Comments
 (0)