From 7c21f20f0f91c4e349aaeffb6cf88d021388774e Mon Sep 17 00:00:00 2001 From: Daniel <d.hornung@indiscale.com> Date: Tue, 22 Aug 2023 15:32:06 +0200 Subject: [PATCH] TEST: Better yaml parser error. --- CHANGELOG.md | 2 ++ manual_tests/test_labfolder_import.py | 2 +- manual_tests/test_labfolder_retrieve.py | 2 +- unittests/{ => models}/model.yml | 0 unittests/models/model_invalid.yml | 2 ++ unittests/test_yaml_model_parser.py | 8 ++++++++ 6 files changed, 14 insertions(+), 2 deletions(-) rename unittests/{ => models}/model.yml (100%) create mode 100644 unittests/models/model_invalid.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb927fd..f24f8f29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed ### +* A bit better error handling in the yaml model parser. + ### Deprecated ### ### Removed ### diff --git a/manual_tests/test_labfolder_import.py b/manual_tests/test_labfolder_import.py index e1e9d326..c767feb5 100644 --- a/manual_tests/test_labfolder_import.py +++ b/manual_tests/test_labfolder_import.py @@ -32,7 +32,7 @@ from caosadvancedtools.converter import labfolder_export as labfolder def main(args): """The main function.""" - model = parse_model_from_yaml("./model.yml") + model = parse_model_from_yaml("./models/model.yml") model.sync_data_model() labfolder.import_data(args.folder) diff --git a/manual_tests/test_labfolder_retrieve.py b/manual_tests/test_labfolder_retrieve.py index 8c3f12d8..5bbaf91d 100644 --- a/manual_tests/test_labfolder_retrieve.py +++ b/manual_tests/test_labfolder_retrieve.py @@ -31,7 +31,7 @@ from caosadvancedtools.converter.labfolder_api import Importer def main(args): """The main function.""" - model = parse_model_from_yaml("./model.yml") + model = parse_model_from_yaml("./models/model.yml") # model.sync_data_model() importer = Importer() diff --git a/unittests/model.yml b/unittests/models/model.yml similarity index 100% rename from unittests/model.yml rename to unittests/models/model.yml diff --git a/unittests/models/model_invalid.yml b/unittests/models/model_invalid.yml new file mode 100644 index 00000000..c8368b97 --- /dev/null +++ b/unittests/models/model_invalid.yml @@ -0,0 +1,2 @@ +Project: + ObligatoryProperties: diff --git a/unittests/test_yaml_model_parser.py b/unittests/test_yaml_model_parser.py index 6cdea792..b1177a46 100644 --- a/unittests/test_yaml_model_parser.py +++ b/unittests/test_yaml_model_parser.py @@ -511,3 +511,11 @@ R3: # Until removal, both do the same assert has_parent(r3, par) assert r3.get_parent(par)._flags["inheritance"] == db.OBLIGATORY + + +def test_yaml_error(): + """Testing error while parsing a yaml. + """ + + with raises(ValueError, match=r"line 2: .*"): + parse_model_from_yaml("unittests/models/model_invalid.yml") -- GitLab