X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_nova_servers_vm_types_use_get_param.py;h=ce653f6acbf88f30e1dc46bd26c6473f94cd0ee6;hb=1d281ce111a76c2b056bcaa572c1e929c90237cf;hp=79bc4b283d1e6d4b86170397bff83d3e4a87ef5a;hpb=f5edc06be0d8bedeb0904b348ba5e3e67c74f186;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_nova_servers_vm_types_use_get_param.py b/ice_validator/tests/test_nova_servers_vm_types_use_get_param.py index 79bc4b2..ce653f6 100644 --- a/ice_validator/tests/test_nova_servers_vm_types_use_get_param.py +++ b/ice_validator/tests/test_nova_servers_vm_types_use_get_param.py @@ -2,7 +2,7 @@ # ============LICENSE_START======================================================= # org.onap.vvp/validation-scripts # =================================================================== -# Copyright © 2018 AT&T Intellectual Property. All rights reserved. +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed @@ -35,18 +35,20 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # import pytest -import yaml +from tests import cached_yaml as yaml +from .helpers import validates, is_nova_server -def test_vm_type_assignments_on_nova_servers_only_use_get_param(heat_template): - ''' + +@validates("R-901331", "R-481670", "R-663631") +def test_vm_type_assignments_on_nova_servers_only_use_get_param(yaml_file): + """ Make sure all nova servers only use get_param for their properties - ''' - with open(heat_template) as fh: + """ + with open(yaml_file) as fh: yml = yaml.load(fh) # skip if resources are not defined @@ -54,23 +56,20 @@ def test_vm_type_assignments_on_nova_servers_only_use_get_param(heat_template): pytest.skip("No resources specified in the heat template") key_values = ["name", "flavor", "image"] - invalid_nova_servers = [] + invalid_nova_servers = set() for k, v in yml["resources"].items(): - if not isinstance(v, dict): - continue - if "properties" not in v: - continue - if "type" not in v: - continue - if v["type"] != "OS::Nova::Server": + if not is_nova_server(v): continue for k2, v2 in v["properties"].items(): if k2 in key_values: if not isinstance(v2, dict): - invalid_nova_servers.append(k) + invalid_nova_servers.add(k) elif "get_param" not in v2: - invalid_nova_servers.append(k) - - assert not set(invalid_nova_servers) + invalid_nova_servers.add(k) + msg = ( + "These OS::Nova::Server resources do not derive one or more of " + + "their {} properties via get_param: {}" + ).format(", ".join(key_values), ", ".join(invalid_nova_servers)) + assert not invalid_nova_servers, msg