[VVP] udpating scripts for casablanca
[vvp/validation-scripts.git] / ice_validator / tests / test_no_unused_parameters_between_env_and_templates.py
index 781f35d..81cfc9a 100644 (file)
 #
 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
 #
-from .helpers import validates
+import os
+import pytest
 
+from .helpers import validates, get_environment_pair
 
+
+@pytest.mark.heat_only
 @validates('R-90279', 'R-01896', 'R-26124')
-def test_no_unused_parameters_between_env_and_templates(environment_pair):
-    '''
+def test_no_unused_parameters_between_env_and_templates(heat_template):
+    """
     Check all defined parameters are used in the appropiate Heat template.
-    '''
-    assert (set(environment_pair["eyml"]['parameters']) ==
-            set(environment_pair["yyml"]['parameters']))
+    """
+    environment_pair = get_environment_pair(heat_template)
+    if not environment_pair:
+        pytest.skip("No heat/env pair could be identified")
+
+    env_parameters = set(environment_pair["eyml"]["parameters"].keys())
+    template_parameters = set(environment_pair["yyml"]["parameters"].keys())
+
+    extra_in_template = template_parameters.difference(env_parameters)
+    extra_in_env = env_parameters.difference(template_parameters)
+
+    msg = "Mismatched parameters detected for the template and environment pair " \
+          "with basename ({basename}). "
+    if extra_in_env:
+        msg += "The following parameters exist in the env file, but not the " \
+               "template: {extra_in_env}. "
+    if extra_in_template:
+        msg += "The following parameters exist in the template file, but not the " \
+               "environment file: {extra_in_template}"
+
+    assert not (extra_in_template or extra_in_env), msg.format(
+        basename=os.path.split(environment_pair["name"])[-1],
+        extra_in_env=", ".join(extra_in_env),
+        extra_in_template=", ".join(extra_in_template)
+    )