diff --git a/sage_validation/file_validator/forms.py b/sage_validation/file_validator/forms.py index 040aaf6eb0624373696d0eb8544c59dd07f5d9b2..5a1034ffd46797ba97f7a40c931d7da2693d4d8b 100644 --- a/sage_validation/file_validator/forms.py +++ b/sage_validation/file_validator/forms.py @@ -244,9 +244,11 @@ class CSVUploadForm(forms.Form): dep = row.get(dep_field) nominal_account_name = row.get(nominal_account_field) + if not cc and not dep and not nominal_account_name: + errors.append( + f"Row {index}: Missing values in '{cc_field}', '{dep_field}', and '{nominal_account_field}'.") + continue if not cc or not dep or not nominal_account_name: - errors.append(f"Row {index}: Missing values in '{cc_field}', '{dep_field}', or " - f"'{nominal_account_field}'.") continue cc_type = cost_centre_map.get(cc) diff --git a/test/test_file_validator/test_forms.py b/test/test_file_validator/test_forms.py index 0360f71f7edfc4d83e7c969b0281fc485b0ed089..3a779cdac6eb0a0332b0451f61ccaf47fb2f90c7 100644 --- a/test/test_file_validator/test_forms.py +++ b/test/test_file_validator/test_forms.py @@ -101,13 +101,15 @@ def test_validate_nc_cc_dep_combination_against_meo_sage_account_blank_values( sample_input_file, { "NominalAnalysisNominalCostCentre/1": "", + "NominalAnalysisNominalDepartment/1": "", + "NominalAnalysisNominalAccountNumber/1": "" }) form = CSVUploadForm(files={"file": modified_file}) assert not form.is_valid() assert ( "Row 1: Missing values in 'NominalAnalysisNominalCostCentre/1', 'NominalAnalysisNominalDepartment/1'," - " or 'NominalAnalysisNominalAccountNumber/1'." + " and 'NominalAnalysisNominalAccountNumber/1'." in str(form.errors["file"][0]) )