67 lines
2.2 KiB
Python
67 lines
2.2 KiB
Python
from pathlib import Path
|
|
from json import dump, load
|
|
from rougail import Rougail, RougailConfig
|
|
from rougail.user_data_yaml import RougailUserDataYaml
|
|
|
|
|
|
def _test_invalid_no_error(filename):
|
|
rougailconfig = RougailConfig.copy()
|
|
rougailconfig["main_namespace"] = None
|
|
rougailconfig["main_structural_directories"] = ["tests/invalid/structure"]
|
|
rougailconfig['step.user_data'] = ['yaml']
|
|
rougailconfig['yaml.filename'] = [f"tests/invalid/{filename}"]
|
|
rougail = Rougail(rougailconfig)
|
|
config = rougail.run()
|
|
for invalid_user_datas_error in [False, True]:
|
|
if invalid_user_datas_error:
|
|
ifilename = f"{filename}_invalid"
|
|
else:
|
|
ifilename = filename
|
|
for unknown_user_datas_error in [False, True]:
|
|
if unknown_user_datas_error:
|
|
ufilename = f"{ifilename}_unknown"
|
|
else:
|
|
ufilename = ifilename
|
|
generated_user_data = RougailUserDataYaml(config, rougailconfig=rougailconfig).run()
|
|
errors = rougail.user_datas(generated_user_data, invalid_user_datas_error=invalid_user_datas_error, unknown_user_datas_error=unknown_user_datas_error)
|
|
#expected output
|
|
expected_filename = Path('tests') / 'invalid' / 'results' / ufilename / "errors.json"
|
|
if not expected_filename.is_file():
|
|
expected_filename.parent.mkdir(parents=True, exist_ok=True)
|
|
with open(expected_filename, 'a') as json_file:
|
|
dump(errors, json_file, indent=4)
|
|
with open(expected_filename) as json_file:
|
|
expected_errors = load(json_file)
|
|
assert expected_errors == errors, expected_filename
|
|
|
|
|
|
def test_invalid():
|
|
_test_invalid_no_error("invalid")
|
|
|
|
|
|
def test_invalid_dyn():
|
|
_test_invalid_no_error("invalid_dyn")
|
|
|
|
|
|
def test_invalid_family():
|
|
_test_invalid_no_error("invalid_family")
|
|
|
|
|
|
def test_invalid_leadership():
|
|
_test_invalid_no_error("invalid_leadership")
|
|
|
|
|
|
def test_invalid_multi():
|
|
_test_invalid_no_error("invalid_multi")
|
|
|
|
|
|
def test_invalid_multi2():
|
|
_test_invalid_no_error("invalid_multi2")
|
|
|
|
|
|
def test_invalid_unknown():
|
|
_test_invalid_no_error("unknown")
|
|
|
|
|
|
def test_invalid_unknown2():
|
|
_test_invalid_no_error("unknown2")
|