|
@@ -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!
|