Skip to content

Commit 7749ea4

Browse files
committed
Enhance error reporting in DeltaHandlerTestCase to include detailed conversion error records
1 parent 748840d commit 7749ea4

1 file changed

Lines changed: 16 additions & 5 deletions

File tree

lambdas/delta_backend/tests/test_delta.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,17 @@ def test_dps_record_skipped(self, mock_logger_info):
511511

512512
@patch("delta.Converter")
513513
def test_partial_success_with_errors(self, mock_converter):
514+
expected_error_records = [
515+
{
516+
"code": 10,
517+
"field": "PERSON_DOB",
518+
"value": "196513-28",
519+
"message": "Unexpected exception [ValueError]: Invalid isoformat string: '196513-28'",
520+
}
521+
]
514522
mock_converter_instance = MagicMock()
515523
mock_converter_instance.run_conversion.return_value = {"ABC": "DEF"}
516-
mock_converter_instance.get_error_records.return_value = [{"error": "Invalid field"}]
524+
mock_converter_instance.get_error_records.return_value = expected_error_records
517525
mock_converter.return_value = mock_converter_instance
518526

519527
# Mock DynamoDB put_item success
@@ -533,13 +541,16 @@ def test_partial_success_with_errors(self, mock_converter):
533541
args, kwargs = self.mock_send_log_to_firehose.call_args
534542
sent_payload = args[1] # Second positional arg
535543

536-
# Navigate to the specific message
537-
status_desc = sent_payload["operation_outcome"]["statusDesc"]
544+
operation_outcome = sent_payload["operation_outcome"]
538545

539-
# Assert the expected message is present
540546
self.assertIn(
541547
"Partial success: successfully synced into delta, but issues found within record",
542-
status_desc,
548+
operation_outcome["statusDesc"],
549+
)
550+
self.assertEqual(operation_outcome["diagnostics"], expected_error_records)
551+
self.mock_logger.warning.assert_called_once_with(
552+
"Partial success: record synced with conversion errors",
553+
extra={"conversion_errors": expected_error_records},
543554
)
544555

545556
def test_send_message_multi_records_diverse(self):

0 commit comments

Comments
 (0)