@@ -585,6 +585,8 @@ def test_handle_invalid_filename_writes_failed_entry_to_dynamo(
585585 failed_files = defaultdict (list )
586586 error = InvalidFileNameException ("Invalid filename format" )
587587
588+ test_service .s3_repo .file_exists_on_staging_bucket .return_value = True
589+
588590 mock_staging_metadata = mocker .patch (
589591 "services.bulk_upload_metadata_processor_service.StagingSqsMetadata" ,
590592 )
@@ -636,6 +638,9 @@ def test_handle_invalid_filename_sets_sent_to_review_true_when_review_enabled(
636638 failed_files = defaultdict (list )
637639 error = InvalidFileNameException ("Invalid filename format" )
638640
641+ test_service_with_review_enabled .s3_repo .file_exists_on_staging_bucket .return_value = (
642+ True
643+ )
639644 mock_write = mocker .patch .object (
640645 test_service_with_review_enabled .dynamo_repository ,
641646 "write_report_upload_to_dynamo" ,
@@ -656,6 +661,43 @@ def test_handle_invalid_filename_sets_sent_to_review_true_when_review_enabled(
656661 str (error ),
657662 sent_to_review = True ,
658663 )
664+ assert (nhs_number , ods_code ) in failed_files
665+
666+
667+ def test_handle_invalid_filename_does_not_send_to_review_when_file_missing (
668+ mocker ,
669+ test_service_with_review_enabled ,
670+ base_metadata_file ,
671+ ):
672+ nhs_number = "1234567890"
673+ ods_code = "Y12345"
674+ failed_files = defaultdict (list )
675+ error = InvalidFileNameException ("Invalid filename format" )
676+
677+ test_service_with_review_enabled .s3_repo .file_exists_on_staging_bucket .return_value = (
678+ False
679+ )
680+ mock_write = mocker .patch .object (
681+ test_service_with_review_enabled .dynamo_repository ,
682+ "write_report_upload_to_dynamo" ,
683+ )
684+ mocker .patch ("services.bulk_upload_metadata_processor_service.StagingSqsMetadata" )
685+
686+ test_service_with_review_enabled .handle_invalid_filename (
687+ base_metadata_file ,
688+ error ,
689+ nhs_number ,
690+ ods_code ,
691+ failed_files ,
692+ )
693+
694+ mock_write .assert_called_once_with (
695+ mocker .ANY ,
696+ UploadStatus .FAILED ,
697+ str (error ),
698+ sent_to_review = False ,
699+ )
700+ assert (nhs_number , ods_code ) not in failed_files
659701
660702
661703def test_csv_to_sqs_metadata_sends_failed_files_to_review_queue_when_enabled (
@@ -676,6 +718,9 @@ def test_csv_to_sqs_metadata_sends_failed_files_to_review_queue_when_enabled(
676718 "validate_and_correct_filename" ,
677719 side_effect = InvalidFileNameException ("invalid" ),
678720 )
721+ test_service_with_review_enabled .s3_repo .file_exists_on_staging_bucket .return_value = (
722+ True
723+ )
679724
680725 result = test_service_with_review_enabled .csv_to_sqs_metadata (MOCK_METADATA_CSV )
681726
0 commit comments