From 1e280c28698165b7d902defd5db423cd47b1a040 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 15 Feb 2019 13:18:18 +0100 Subject: [PATCH] Check if every quality is matched to an existing definition --- tests/Settings/TestQualities.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/Settings/TestQualities.py b/tests/Settings/TestQualities.py index 41550e7848..b27debb962 100644 --- a/tests/Settings/TestQualities.py +++ b/tests/Settings/TestQualities.py @@ -17,17 +17,29 @@ def collectAllQualities(): return result +def collecAllDefinitionIds(): + result = [] + for root, directories, filenames in os.walk(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "resources", "definitions"))): + for filename in filenames: + result.append(os.path.basename(filename).split(".")[0]) + return result + + +all_definition_ids = collecAllDefinitionIds() quality_filepaths = collectAllQualities() + ## Atempt to load all the quality types @pytest.mark.parametrize("file_name", quality_filepaths) def test_validateQualityProfiles(file_name): try: with open(file_name, encoding="utf-8") as data: json = data.read() - InstanceContainer._readAndValidateSerialized(json) + result = InstanceContainer._readAndValidateSerialized(json) # Fairly obvious, but all the types here should be of the type quality assert InstanceContainer.getConfigurationTypeFromSerialized(json) == "quality" + # All quality profiles must be linked to an existing definition. + assert result["general"]["definition"] in all_definition_ids except Exception as e: # File can't be read, header sections missing, whatever the case, this shouldn't happen!