[VVP] enhance tests for nested templates
[vvp/validation-scripts.git] / ice_validator / tests / test_allowed_address_pairs_include_vm_type_network_role.py
index d4fdb36..714e555 100644 (file)
@@ -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
 #
 #
 # ============LICENSE_END============================================
 #
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
 #
-from .helpers import validates
+
+"""
+test_allowed_address_pairs_include_vm_type_network_role
+"""
 
 import pytest
-import yaml
+from tests import cached_yaml as yaml
+
+from .helpers import validates
 from .utils.ports import get_invalid_ip_addresses
 
+VERSION = "1.0.0"
 
-@validates('R-41492',
-           'R-35735')
-def test_allowed_address_pairs_include_vm_type_network_role(heat_template):
-    '''
+# pylint: disable=invalid-name
+
+
+@validates("R-41492", "R-35735", "R-98748")
+def test_allowed_address_pairs_include_vm_type_network_role(yaml_file):
+    """
     Check that all allowed_address_pairs include the {vm_type} of the
     nova server it is associated to and also contains the
     {network_role} of the network it is associated with
-    '''
-    with open(heat_template) as fh:
+    """
+    with open(yaml_file) as fh:
         yml = yaml.load(fh)
 
     # skip if resources are not defined
     if "resources" not in yml:
         pytest.skip("No resources specified in the heat template")
 
-    invalid_ip_addresses = get_invalid_ip_addresses(yml['resources'],
-                                                    "allowed_address_pairs")
+    if "parameters" not in yml:
+        pytest.skip("No parameters specified in the heat template")
+
+    invalid_ip_addresses = get_invalid_ip_addresses(
+        yml["resources"], "allowed_address_pairs", yml["parameters"]
+    )
 
-    assert not set(invalid_ip_addresses)
+    assert not set(
+        invalid_ip_addresses
+    ), "invalid ip addresses allowed address pairs %s" % list(set(invalid_ip_addresses))