@@ -87,6 +87,11 @@ def mock_get_db_report_items(bulk_upload_report_service, mocker):
8787 yield mocker .patch .object (bulk_upload_report_service , "get_dynamodb_report_items" )
8888
8989
90+ @pytest .fixture
91+ def mock_write_summary_data_to_csv (bulk_upload_report_service , mocker ):
92+ yield mocker .patch .object (bulk_upload_report_service , "write_summary_data_to_csv" )
93+
94+
9095@pytest .fixture
9196def mock_write_items_to_csv (bulk_upload_report_service , mocker ):
9297 yield mocker .patch .object (bulk_upload_report_service , "write_items_to_csv" )
@@ -244,15 +249,17 @@ def test_report_handler_no_items_returns_expected_log(
244249def test_report_handler_with_items_uploads_summary_report_to_bucket (
245250 bulk_upload_report_service ,
246251 mock_get_db_with_data ,
247- mock_write_items_to_csv ,
252+ mock_write_summary_data_to_csv ,
248253 mock_get_times_for_scan ,
249254 caplog ,
250255):
251- expected_message = "Successfully processed daily summary report"
256+ expected_messages = [
257+ "Successfully processed daily ODS reports" ,
258+ "Successfully processed daily summary report" ,
259+ "Successfully processed daily report" ,
260+ ]
261+
252262 mock_date_string = MOCK_END_REPORT_TIME .strftime ("%Y%m%d" )
253- mock_file_name = (
254- f"daily_statistical_report_bulk_upload_summary_{ mock_date_string } .csv"
255- )
256263 bulk_upload_report_service .report_handler ()
257264
258265 mock_get_times_for_scan .assert_called_once ()
@@ -261,19 +268,35 @@ def test_report_handler_with_items_uploads_summary_report_to_bucket(
261268 int (MOCK_END_REPORT_TIME .timestamp ()),
262269 )
263270
264- mock_write_items_to_csv .assert_called ()
271+ mock_write_summary_data_to_csv .assert_called ()
265272
266- bulk_upload_report_service .s3_service .upload_file .assert_called ()
267- bulk_upload_report_service .s3_service .upload_file .assert_called_with (
268- s3_bucket_name = MOCK_STATISTICS_REPORT_BUCKET_NAME ,
269- file_key = f"daily-reports/{ mock_file_name } " ,
270- file_name = f"/tmp/{ mock_file_name } " ,
271- )
272- assert caplog .records [- 1 ].msg == expected_message
273+ calls = [
274+ call (
275+ s3_bucket_name = MOCK_STATISTICS_REPORT_BUCKET_NAME ,
276+ file_key = f"daily_statistical_report_bulk_upload_summary_{ mock_date_string } _uploaded_by_Y12345.csv" ,
277+ file_name = f"/tmp/daily_statistical_report_bulk_upload_summary_{ mock_date_string } _uploaded_by_Y12345.csv" ,
278+ ),
279+ call (
280+ s3_bucket_name = MOCK_STATISTICS_REPORT_BUCKET_NAME ,
281+ file_key = f"daily-reports/daily_statistical_report_bulk_upload_summary_{ mock_date_string } .csv" ,
282+ file_name = f"/tmp/daily_statistical_report_bulk_upload_summary_{ mock_date_string } .csv" ,
283+ ),
284+ call (
285+ s3_bucket_name = MOCK_STATISTICS_REPORT_BUCKET_NAME ,
286+ file_key = f"daily-reports/Bulk upload report for { str (MOCK_END_REPORT_TIME )} .csv" ,
287+ file_name = f"/tmp/Bulk upload report for { str (MOCK_END_REPORT_TIME )} .csv" ,
288+ ),
289+ ]
290+
291+ bulk_upload_report_service .s3_service .upload_file .has_calls (calls )
292+
293+ log_message_match = set (expected_messages ).issubset (caplog .messages )
294+
295+ assert log_message_match
273296
274297
275298def test_generate_individual_ods_report_creates_ods_report (
276- bulk_upload_report_service , mock_write_items_to_csv
299+ bulk_upload_report_service , mock_write_summary_data_to_csv
277300):
278301 mock_ods_report_data = [MOCK_DATA_COMPLETE_UPLOAD , MOCK_DATA_FAILED_UPLOAD ]
279302 expected = OdsReport (
@@ -289,7 +312,7 @@ def test_generate_individual_ods_report_creates_ods_report(
289312
290313 assert actual .__dict__ == expected .__dict__
291314 bulk_upload_report_service .s3_service .upload_file .assert_called ()
292- mock_write_items_to_csv .assert_called ()
315+ mock_write_summary_data_to_csv .assert_called ()
293316
294317
295318def test_generate_individual_ods_report_writes_csv_report (bulk_upload_report_service ):
0 commit comments