def test_validation_line_driver(dm_data, sheet_data, dm_index, dm_data_type, passes, value, wanted, got): # we use the fixture but change it for this test dm_data[dm_index]["data_type"] = dm_data_type v_out = validate_line(dm_data[dm_index], sheet_data) assert v_out.validation_check.passes == passes assert v_out.validation_check.value == value assert v_out.validation_check.wanted == wanted assert v_out.validation_check.got == got
def test_validation_simple_untyped(self): dm_line = { "cellref": "A1", "data_type": "", "filename": "datamap.csv", "key": "Text Key", "sheet": "Sheet A", } sheet_data = { "A1": { "cellref": "A1", "data_type": "NUMBER", "file_name": "chutney.xlsx", "key": "Text Key", "sheet": "Sheet A", "value": 10, } } v = validate_line(dm_line, sheet_data) assert v.validation_check.passes == "UNTYPED" assert v.validation_check.filename == "chutney.xlsx" assert v.validation_check.wanted == "NA" assert v.validation_check.got == "NUMBER"
def test_validation_simple_pass(self, data_type): dm_line = { "cellref": "A1", "data_type": data_type, "filename": "datamap.csv", "key": "Text Key", "sheet": "Sheet A", } sheet_data = { "A1": { "cellref": "A1", "data_type": data_type, "file_name": "chutney.xlsx", "key": "Text Key", "sheet": "Sheet A", "value": "Text Key Value", } } v = validate_line(dm_line, sheet_data) assert v.validation_check.passes == "PASS" assert v.validation_check.filename == "chutney.xlsx" assert v.validation_check.wanted == data_type assert v.validation_check.got == data_type
def test_validation_simple_fail_using_disallowed_types(self, data_type): dm_line = { "cellref": "A1", "data_type": data_type, "filename": "datamap.csv", "key": "Text Key", "sheet": "Sheet A", } sheet_data = { "A1": { "cellref": "A1", "data_type": "TEXT", "file_name": "chutney.xlsx", "key": "Text Key", "sheet": "Sheet A", "value": 10, } } v = validate_line(dm_line, sheet_data) assert v.validation_check.passes == "UNTYPED" assert v.validation_check.filename == "chutney.xlsx" assert v.validation_check.wanted == data_type assert v.validation_check.got == "TEXT"
def test_validation_untyped_and_empty_in_template(self): dm_line = { "cellref": "A1", "data_type": "", "filename": "datamap.csv", "key": "Text Key", "sheet": "Sheet A", } sheet_data = { "NOEXIST": { # simulates this line not being present in data sent validation "cellref": "A1", "data_type": "", "file_name": "chutney.xlsx", "key": "Text Key", "sheet": "Sheet A", "value": "", } } v = validate_line(dm_line, sheet_data) assert v.validation_check.passes == "FAIL" assert v.validation_check.filename == "chutney.xlsx" assert v.validation_check.wanted == "NA" assert v.validation_check.got == "EMPTY"
def test_validation_simple_fails(self, wanted, got, val): dm_line = { "cellref": "A1", "data_type": wanted, "filename": "datamap.csv", "key": "Text Key", "sheet": "Sheet A", } sheet_data = { "A1": { "cellref": "A1", "data_type": got, "file_name": "chutney.xlsx", "key": "Text Key", "sheet": "Sheet A", "value": val, } } v = validate_line(dm_line, sheet_data) assert v.validation_check.passes == "FAIL" assert v.validation_check.filename == "chutney.xlsx" assert v.validation_check.wanted == wanted assert v.validation_check.got == got assert v.validation_check.value == val