X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=ice_validator%2Ftests%2Ftest_volume_outputs_consumed.py;h=cad1e7ecb7bf1f9aa4572e7438ef01ae91d19895;hb=1f4df7c7ad27b23773ad9cdbe4db1632ce388cf1;hp=575e5dcf4425a960f3ea87c55ac02e281a78a68b;hpb=ca9085f0f77d442d3741a8c754e65cc45b6a318d;p=vvp%2Fvalidation-scripts.git diff --git a/ice_validator/tests/test_volume_outputs_consumed.py b/ice_validator/tests/test_volume_outputs_consumed.py index 575e5dc..cad1e7e 100644 --- a/ice_validator/tests/test_volume_outputs_consumed.py +++ b/ice_validator/tests/test_volume_outputs_consumed.py @@ -46,20 +46,36 @@ from tests import cached_yaml as yaml from .helpers import validates -def expected_template_module_pair(volume_path): - """Returns the path to the expected base or incremental module for a given volume""" - base_dir, filename = os.path.split(volume_path) - return os.path.join(base_dir, filename.replace("_volume", "")) +class VolumePairModule: + def __init__(self, volume_path): + self.volume_path = volume_path + + @property + def path_options(self): + expected_path, _ = self.volume_path.rsplit("_volume", maxsplit=1) + return (expected_path + ".yaml", expected_path + ".yml") + + @property + def exists(self): + return any(os.path.exists(option) for option in self.path_options) + + def get_module_path(self): + """ + Return the path of the volume module's pair if it exists, + otherwise None + """ + for option in self.path_options: + if os.path.exists(option): + return option + return None @validates("R-82732") def test_volume_module_name_matches_incremental_or_base_module(volume_template): - expected_template_name = expected_template_module_pair(volume_template) - assert os.path.exists( - expected_template_name - ), "Could not find corresponding module ({}) for volume module ({}".format( - expected_template_name, volume_template - ) + pair_module = VolumePairModule(volume_template) + assert pair_module.exists, ( + "Could not find a corresponding module ({}) for " + "volume module ({})" + ).format(" or ".join(pair_module.path_options), volume_template) @validates("R-11200", "R-07443") @@ -68,15 +84,12 @@ def test_volume_outputs_consumed(template_dir, volume_template): Check that all outputs in a volume template is consumed by the corresponding heat template """ - pair_template = expected_template_module_pair(volume_template) - - # Make sure all the output parameters in the volume module are - # consumed by the expected base or incremental module - if not os.path.exists(pair_template): - pytest.skip("Expected pair module not found") + pair_module = VolumePairModule(volume_template) + if not pair_module.exists: + pytest.skip("No pair module found for volume template") with open(volume_template, "r") as f: volume = yaml.load(f) - with open(pair_template, "r") as f: + with open(pair_module.get_module_path(), "r") as f: pair = yaml.load(f) outputs = set(volume.get("outputs", {}).keys()) parameters = set(pair.get("parameters", {}).keys()) @@ -84,16 +97,16 @@ def test_volume_outputs_consumed(template_dir, volume_template): assert not missing_output_parameters, ( "The output parameters ({}) in {} were not all " "used by the expected module {}".format( - ",".join(missing_output_parameters), volume_template, pair_template + ",".join(missing_output_parameters), volume_template, pair_module ) ) # Now make sure that none of the output parameters appear in any other # template - template_files = set(glob.glob("*.yaml")) + template_files = set(glob.glob("*.yaml")).union(glob.glob(".yml")) errors = {} for template_path in template_files: - if template_path in (pair_template, volume_template): + if template_path in (pair_module, volume_template): continue # Skip these files since we already checked this pair with open(template_path, "r") as f: template = yaml.load(f) @@ -104,5 +117,6 @@ def test_volume_outputs_consumed(template_dir, volume_template): message = ", ".join( "{} ({})".format(path, ", ".join(params)) for path, params in errors.items() ) - assert not errors, "Volume output parameters detected in unexpected modules: " + \ - message + assert not errors, ( + "Volume output parameters detected in unexpected modules: " + message + )