X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ice_validator%2Ftests%2Ftest_availability_zone.py;h=ba71d1411a8d2b97cd0d82d9d41ef3076393d63e;hb=8540eb59f7e7f8ff2043a8eaf7edfc255a60874a;hp=6ff11c8bdc3001b85d718def4bff76373686b95b;hpb=cc21b8b08b6dbcec577bfb26ff397ac899da8002;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_availability_zone.py b/ice_validator/tests/test_availability_zone.py index 6ff11c8..ba71d14 100644 --- a/ice_validator/tests/test_availability_zone.py +++ b/ice_validator/tests/test_availability_zone.py @@ -1,12 +1,12 @@ # -*- coding: utf8 -*- -# ============LICENSE_START======================================================= +# ============LICENSE_START==================================================== # org.onap.vvp/validation-scripts # =================================================================== # Copyright © 2017 AT&T Intellectual Property. All rights reserved. # =================================================================== # # Unless otherwise specified, all software contained herein is licensed -# under the Apache License, Version 2.0 (the “License”); +# under the Apache License, Version 2.0 (the "License"); # you may not use this software except in compliance with the License. # You may obtain a copy of the License at # @@ -21,7 +21,7 @@ # # # Unless otherwise specified, all documentation contained herein is licensed -# under the Creative Commons License, Attribution 4.0 Intl. (the “License”); +# under the Creative Commons License, Attribution 4.0 Intl. (the "License"); # you may not use this documentation except in compliance with the License. # You may obtain a copy of the License at # @@ -35,18 +35,25 @@ # # ============LICENSE_END============================================ # -# ECOMP is a trademark and service mark of AT&T Intellectual Property. # +"""test +""" -import pytest -import yaml import re +import pytest +from tests import cached_yaml as yaml + +from .helpers import validates + +VERSION = "1.1.0" + +@validates("R-98450") def test_availability_zone_naming(heat_template): - ''' + """ Make sure all availability zones are properly formatted - ''' + """ with open(heat_template) as fh: yml = yaml.load(fh) @@ -55,7 +62,7 @@ def test_availability_zone_naming(heat_template): if "resources" not in yml: pytest.skip("No resources specified in the heat template") - invalid_availability_zones = [] + invalid_availability_zones = set() for k1, v1 in yml["resources"].items(): if not isinstance(v1, dict): @@ -67,10 +74,15 @@ def test_availability_zone_naming(heat_template): if v1["type"] == "OS::Nova::Server": for k2, v2 in v1["properties"].items(): - if k2 != 'availability_zone': + if k2 != "availability_zone": continue + if "str_replace" in v2: + continue + if "get_param" not in v2: + invalid_availability_zones.add(k1) + elif not re.match(r"availability_zone_\d+", v2["get_param"]): + invalid_availability_zones.add(v2["get_param"]) - if not re.match(r'availability_zone_\d+', v2["get_param"]): - invalid_availability_zones.append(v2["get_param"]) - - assert not set(invalid_availability_zones) + assert not invalid_availability_zones, "invalid availability zones %s" % list( + invalid_availability_zones + )