@@ -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