[VVP] Allow lists in test_availability_zone
[vvp/validation-scripts.git] / ice_validator / tests / test_availability_zone.py
index 4f250b8..7feefc9 100644 (file)
@@ -35,7 +35,6 @@
 #
 # ============LICENSE_END============================================
 #
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
 #
 """test
 """
@@ -43,7 +42,7 @@
 import re
 
 import pytest
-import yaml
+from tests import cached_yaml as yaml
 
 from .helpers import validates
 
@@ -51,12 +50,12 @@ VERSION = "1.1.0"
 
 
 @validates("R-98450")
-def test_availability_zone_naming(heat_template):
+def test_availability_zone_naming(yaml_file):
     """
     Make sure all availability zones are properly formatted
     """
 
-    with open(heat_template) as fh:
+    with open(yaml_file) as fh:
         yml = yaml.load(fh)
 
     # skip if resources are not defined
@@ -65,7 +64,7 @@ def test_availability_zone_naming(heat_template):
 
     invalid_availability_zones = set()
 
-    for v1 in yml["resources"].values():
+    for k1, v1 in yml["resources"].items():
         if not isinstance(v1, dict):
             continue
         if "properties" not in v1:
@@ -79,6 +78,11 @@ def test_availability_zone_naming(heat_template):
                     continue
                 if "str_replace" in v2:
                     continue
+                if "get_param" not in v2:
+                    invalid_availability_zones.add(k1)
+                    continue
+                if not isinstance(v2["get_param"], str):
+                    continue
                 if not re.match(r"availability_zone_\d+", v2["get_param"]):
                     invalid_availability_zones.add(v2["get_param"])