Commit 9bc6a32d authored by Rafael Monnerat's avatar Rafael Monnerat

slapos.test: Test if software.cfg.json don't have duplicated entries

parent f21c630f
Pipeline #33486 failed with stage
in 0 seconds
...@@ -67,13 +67,20 @@ def createSoftwareCfgValidatorTest(path, software_cfg_schema): ...@@ -67,13 +67,20 @@ def createSoftwareCfgValidatorTest(path, software_cfg_schema):
schema = json.load(json_file) schema = json.load(json_file)
jsonschema.validate(schema, software_cfg_schema) jsonschema.validate(schema, software_cfg_schema)
_viewed_software_type = []
# also make sure request and response schemas can be resolved # also make sure request and response schemas can be resolved
schema.setdefault('$id', 'file://' + path) schema.setdefault('$id', 'file://' + path)
resolver = jsonschema.RefResolver.from_schema(schema) resolver = jsonschema.RefResolver.from_schema(schema)
for software_type_definition in six.itervalues(schema['software-type']): for key, software_type_definition in six.iteritems(schema['software-type']):
resolver.resolve(software_type_definition['request']) resolver.resolve(software_type_definition['request'])
resolver.resolve(software_type_definition['response']) resolver.resolve(software_type_definition['response'])
# Ensure there inst a duplicated entry.
_software_type_tuple = (
software_type_definition.get("software-type", key),
software_type_definition.get("shared", False))
assert _software_type_tuple not in _viewed_software_type, \
"Duplicated software release on %s, shared: %s" % _software_type_tuple
_viewed_software_type.append(_software_type_tuple)
return run return run
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment