Skip to content
Snippets Groups Projects

Feature/unit test for validations

Merged Neda Moeini requested to merge feature/unit-test-for-validations into develop
1 file
+ 43
1
Compare changes
  • Side-by-side
  • Inline
@@ -47,6 +47,48 @@ def test_source_and_trader_type_validation(sample_input_file, mock_meo_database)
@@ -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")
modified_file = SimpleUploadedFile("test_modified.csv", output.getvalue().encode("utf-8"), content_type="text/csv")
form = CSVUploadForm(files={"file": modified_file})
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: 'Source' must be 80" in form.errors["file"][0]
assert "Row 1: 'SYSTraderTranType' must be 4" in form.errors["file"][1]
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])
 
Loading