From 36a671c62bae9aef3170f7f22deb483196113b90 Mon Sep 17 00:00:00 2001 From: Neda Moeini <neda.moeini@geant.org> Date: Thu, 27 Feb 2025 16:07:25 +0100 Subject: [PATCH] Test validate nc cc dep combination against meo sage account --- test/test_file_validator/test_forms.py | 44 +++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/test/test_file_validator/test_forms.py b/test/test_file_validator/test_forms.py index db0a25a..583fbbe 100644 --- a/test/test_file_validator/test_forms.py +++ b/test/test_file_validator/test_forms.py @@ -47,6 +47,48 @@ def test_source_and_trader_type_validation(sample_input_file, mock_meo_database) modified_file = SimpleUploadedFile("test_modified.csv", output.getvalue().encode("utf-8"), content_type="text/csv") form = CSVUploadForm(files={"file": modified_file}) - assert not form.is_valid(), "Form should be invalid due to incorrect Source and SYSTraderTranType values" + assert not form.is_valid() assert "Row 1: 'Source' must be 80" in form.errors["file"][0] assert "Row 1: 'SYSTraderTranType' must be 4" in form.errors["file"][1] + + +def test_validate_nominal_analysis_account(sample_input_file, mock_meo_database): + """Test validation for nominal analysis account.""" + + csv_content = sample_input_file.read().decode("utf-8").splitlines() + reader = csv.DictReader(csv_content) + rows = list(reader) + rows[0]["NominalAnalysisNominalAnalysisNarrative/1"] = "Invalid Name" + + # Rebuild the CSV with modified values + output = io.StringIO() + writer = csv.DictWriter(output, fieldnames=reader.fieldnames) + writer.writeheader() + writer.writerows(rows) + modified_file = SimpleUploadedFile("test_modified.csv", output.getvalue().encode("utf-8"), content_type="text/csv") + + form = CSVUploadForm(files={"file": modified_file}) + assert not form.is_valid() + assert (f"Row 1: 'AccountNumber' must match 'Sample Narrative' in 'NominalAnalysisNominalAnalysisNarrative/1'," + f" but found 'Invalid Name'.") == form.errors["file"][0] + + +def test_validate_nc_cc_dep_combination_against_meo_sage_account(sample_input_file, mock_meo_database): + """Test validation for nominal analysis fields against MEO valid Sage accounts.""" + csv_content = sample_input_file.read().decode("utf-8").splitlines() + reader = csv.DictReader(csv_content) + rows = list(reader) + + rows[0]["NominalAnalysisNominalCostCentre/1"] = "Invalid_CC" + rows[0]["NominalAnalysisNominalAccountNumber/1"] = "Invalid_Account" + + output = io.StringIO() + writer = csv.DictWriter(output, fieldnames=reader.fieldnames) + writer.writeheader() + writer.writerows(rows) + modified_file = SimpleUploadedFile("test_modified.csv", output.getvalue().encode("utf-8"), content_type="text/csv") + + form = CSVUploadForm(files={"file": modified_file}) + assert not form.is_valid() + assert "Row 1: 'NominalAnalysisNominalCostCentre/1' (Invalid_CC) is not a valid cost centre." in str(form.errors["file"][0]) + -- GitLab