aboutsummaryrefslogtreecommitdiffstats
path: root/ice_validator/tests/helpers.py
diff options
context:
space:
mode:
authorstark, steven <steven.stark@att.com>2019-04-19 16:17:58 -0700
committerstark, steven <steven.stark@att.com>2019-04-22 16:07:01 -0700
commit684ad537becece9df772b04d0d8226bcb7c30ca4 (patch)
tree1046d067fbde6209009c4247ad73453ac290672e /ice_validator/tests/helpers.py
parentac35c043b29a6c65a0c9ce932aa12e1f406ff44c (diff)
[VVP] updating nested parameter test
R-708564 was updated in RTD to target explicit parameters Change-Id: If860903ae13b76543c43f3e805b8aa03e9e2019d Issue-ID: VVP-197 Signed-off-by: stark, steven <steven.stark@att.com>
Diffstat (limited to 'ice_validator/tests/helpers.py')
-rw-r--r--ice_validator/tests/helpers.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/ice_validator/tests/helpers.py b/ice_validator/tests/helpers.py
index 5744945..afa8672 100644
--- a/ice_validator/tests/helpers.py
+++ b/ice_validator/tests/helpers.py
@@ -307,3 +307,20 @@ def parameter_type_to_heat_type(parameter):
parameter_type = None
return parameter_type
+
+
+def prop_iterator(resource, *props):
+ terminators = ["get_resource", "get_attr", "str_replace"]
+ if "properties" in resource:
+ resource = resource.get("properties")
+ props = list(props)
+
+ if isinstance(resource, dict) and "get_param" in resource:
+ yield resource.get("get_param")
+ else:
+ prop = resource.get(props.pop(0))
+ if isinstance(prop, list):
+ for x in prop:
+ yield from prop_iterator(x, *props)
+ elif isinstance(prop, dict) and not any(x for x in terminators if x in prop):
+ yield from prop_iterator(prop, *props)