@@ -235,29 +235,30 @@ def test_handler_process_record_exception(self):
235235 self .assertEqual (exception .message , "Error processing id_sync event" )
236236
237237 def test_handler_process_record_missing_nhs_number (self ):
238- """Test handler when process_record returns incomplete data"""
238+ """Test handler when process_record returns error and missing NHS number"""
239+
239240 # Setup mocks
240241 mock_event = MagicMock ()
241242 mock_event .records = [MagicMock ()]
242243 self .mock_aws_lambda_event .return_value = mock_event
243244
244- # Missing " nhs_number" in response
245+ # Return result without ' nhs_number' but with an 'error' status
245246 self .mock_process_record .return_value = {
246- "status" : "success"
247- # Missing "nhs_number"
247+ "status" : "error" ,
248+ "message" : "Missing NHS number"
249+ # No 'nhs_number'
248250 }
249251
250- # Call handler
252+ # Call handler and expect exception
251253 with self .assertRaises (IdSyncException ) as exception_context :
252254 handler (self .single_sqs_event , None )
253255
254256 exception = exception_context .exception
255257
256- # convert exception payload to json
257258 self .assertIsInstance (exception , IdSyncException )
258- self .assertEqual (exception .nhs_numbers , None )
259- self .assertEqual (exception .message , "Error processing id_sync event " )
260- self .mock_logger .exception .assert_called_once_with ("Error processing id_sync event " )
259+ self .assertEqual (exception .nhs_numbers , []) # Since no nhs_number was collected
260+ self .assertEqual (exception .message , "Processed 1 records with 1 errors " )
261+ self .mock_logger .exception .assert_called_once_with (f" id_sync error: { exception . message } " )
261262
262263 def test_handler_context_parameter_ignored (self ):
263264 """Test that context parameter is properly ignored"""
0 commit comments