|
1 | 1 | import csv |
2 | 2 | import functools |
3 | 3 | import io |
| 4 | +import json |
4 | 5 | from pathlib import Path |
5 | 6 | from unittest.mock import Mock |
6 | 7 |
|
|
9 | 10 | from folioclient import FolioClient |
10 | 11 |
|
11 | 12 | from folio_migration_tools.custom_exceptions import ( |
| 13 | + TransformationFieldMappingError, |
12 | 14 | TransformationProcessError, |
13 | 15 | TransformationRecordFailedError, |
14 | 16 | ) |
@@ -6323,4 +6325,21 @@ def test_validate_array_item_missing_required_log_it_output( |
6323 | 6325 | assert "PO-12345" in log_msg |
6324 | 6326 | assert "Required properties missing in poLines item" in log_msg |
6325 | 6327 | 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