From 9eab6a56b788d9f5eb8848c1d27c8c7c3d00644d Mon Sep 17 00:00:00 2001
From: Neda Moeini <neda.moeini@geant.org>
Date: Wed, 30 Apr 2025 13:48:59 +0200
Subject: [PATCH] Change the NC_CC_DEP validation error handling

---
 sage_validation/file_validator/forms.py | 6 ++++--
 test/test_file_validator/test_forms.py  | 4 +++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/sage_validation/file_validator/forms.py b/sage_validation/file_validator/forms.py
index 040aaf6..5a1034f 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 0360f71..3a779cd 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])
     )
 
-- 
GitLab