44import boto3
55import copy
66from unittest import TestCase
7- from unittest .mock import patch , Mock , ANY
7+ from unittest .mock import patch , Mock , ANY , call
88
99import botocore
1010from moto import mock_aws
@@ -206,10 +206,17 @@ def test_lambda_handler_raises_error_when_event_already_processing_for_supplier_
206206 sqs_messages = sqs_client .receive_message (QueueUrl = self .mock_queue_url )
207207 self .assertEqual (sqs_messages .get ("Messages" , []), [])
208208
209- self .mock_logger .info .assert_called_once_with (
210- "Batch event already processing for supplier and vacc type. Filename: %s" ,
211- "Menacwy_Vaccinations_v5_TEST_20250826T15003000.csv"
212- )
209+ self .mock_logger .info .assert_has_calls ([
210+ call (
211+ "Received batch file event for filename: %s with message id: %s" ,
212+ "Menacwy_Vaccinations_v5_TEST_20250826T15003000.csv" ,
213+ "3b60c4f7-ef67-43c7-8f0d-4faee04d7d0e"
214+ ),
215+ call (
216+ "Batch event already processing for supplier and vacc type. Filename: %s" ,
217+ "Menacwy_Vaccinations_v5_TEST_20250826T15003000.csv"
218+ )
219+ ])
213220
214221 def test_lambda_handler_processes_event_successfully (self ):
215222 """Should update the audit entry status to Processing and forward to SQS"""
@@ -225,11 +232,20 @@ def test_lambda_handler_processes_event_successfully(self):
225232 self .assertEqual (len (sqs_messages .get ("Messages" , [])), 1 )
226233 self .assertDictEqual (json .loads (sqs_messages ["Messages" ][0 ]["Body" ]), dict (self .default_batch_file_event ))
227234
228- expected_log_message = (f"File forwarded for processing by ECS. Filename: "
229- f"{ self .default_batch_file_event ['filename' ]} " )
230- self .mock_logger .info .assert_called_once_with (expected_log_message )
235+ expected_success_log_message = (f"File forwarded for processing by ECS. Filename: "
236+ f"{ self .default_batch_file_event ['filename' ]} " )
237+ self .mock_logger .info .assert_has_calls ([
238+ call (
239+ "Received batch file event for filename: %s with message id: %s" ,
240+ "Menacwy_Vaccinations_v5_TEST_20250820T10210000.csv" ,
241+ "df0b745c-b8cb-492c-ba84-8ea28d9f51d5"
242+ ),
243+ call (
244+ expected_success_log_message
245+ )
246+ ])
231247 self .mock_firehose_send_log .assert_called_once_with (
232- {** self .default_batch_file_event , "message" : expected_log_message }
248+ {** self .default_batch_file_event , "message" : expected_success_log_message }
233249 )
234250
235251 def test_lambda_handler_processes_event_successfully_when_event_for_same_supplier_and_vacc_already_processed (self ):
@@ -256,8 +272,17 @@ def test_lambda_handler_processes_event_successfully_when_event_for_same_supplie
256272 self .assertEqual (len (sqs_messages .get ("Messages" , [])), 1 )
257273 self .assertDictEqual (json .loads (sqs_messages ["Messages" ][0 ]["Body" ]), dict (test_event ))
258274
259- expected_log_message = f"File forwarded for processing by ECS. Filename: { test_event ['filename' ]} "
260- self .mock_logger .info .assert_called_once_with (expected_log_message )
275+ expected_success_log_message = f"File forwarded for processing by ECS. Filename: { test_event ['filename' ]} "
276+ self .mock_logger .info .assert_has_calls ([
277+ call (
278+ "Received batch file event for filename: %s with message id: %s" ,
279+ "Menacwy_Vaccinations_v5_TEST_20250826T15003000.csv" ,
280+ "3b60c4f7-ef67-43c7-8f0d-4faee04d7d0e"
281+ ),
282+ call (
283+ expected_success_log_message
284+ )
285+ ])
261286 self .mock_firehose_send_log .assert_called_once_with (
262- {** test_event , "message" : expected_log_message }
287+ {** test_event , "message" : expected_success_log_message }
263288 )
0 commit comments