#
# ============LICENSE_END============================================
#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
#
"""parametrizers
from os import path, listdir
import re
-import yaml
+from tests import cached_yaml as yaml
import pytest
from .helpers import get_parsed_yml_for_yaml_files, check_basename_ending
from .utils.nested_files import get_list_of_nested_files
VERSION = "1.0.0"
-
# pylint: disable=invalid-name
"""
if metafunc.config.getoption("template_dir") is None:
return path.join(
- path.dirname(path.realpath(__file__)),
+ path.dirname(metafunc.module.__file__),
"fixtures",
metafunc.function.__module__.split(".")[-1],
)
return metafunc.config.getoption("template_dir")[0]
+def file_is_a_nested_template(file):
+ directory = path.dirname(file)
+ nested_files = []
+ for filename in listdir(directory):
+ if filename.endswith(".yaml") or filename.endswith(".yml"):
+ filename = "{}/{}".format(directory, filename)
+ try:
+ with open(filename) as fh:
+ yml = yaml.load(fh)
+ if "resources" not in yml:
+ continue
+ nested_files.extend(
+ get_list_of_nested_files(yml["resources"], path.dirname(filename))
+ )
+ except yaml.YAMLError as e:
+ print(e) # pylint: disable=superfluous-parens
+ continue
+ return file in nested_files
+
+
def get_nested_files(filenames):
"""
returns all the nested files for a set of filenames
"""
nested_files = []
for filename in filenames:
- try:
- with open(filename) as fh:
- yml = yaml.load(fh)
- if "resources" not in yml:
- continue
- nested_files.extend(
- get_list_of_nested_files(yml["resources"], path.dirname(filename))
- )
- except yaml.YAMLError as e:
- print(e) # pylint: disable=superfluous-parens
- continue
+ if file_is_a_nested_template(filename):
+ nested_files.append(filename)
return nested_files
def list_filenames_in_template_dir(
- metafunc, extensions, template_type="", sub_dirs=None
+ metafunc, extensions, template_type="", sub_dirs=None
):
"""
returns the filenames in a template_dir, either as its passed in
path.join(template_dir, s, f)
for s in sub_dirs
for f in listdir(path.join(template_dir, s))
- if (path.isfile(path.join(template_dir, s, f)) and
- path.splitext(f)[-1] in extensions and
- check_basename_ending(template_type, path.splitext(f)[0]))
+ if path.isfile(path.join(template_dir, s, f))
+ and path.splitext(f)[-1] in extensions
+ and check_basename_ending(template_type, path.splitext(f)[0])
]
else:
filenames = [
path.join(template_dir, f)
for f in listdir(template_dir)
- if (path.isfile(path.join(template_dir, f)) and
- path.splitext(f)[-1] in extensions and
- check_basename_ending(template_type, path.splitext(f)[0]))
+ if path.isfile(path.join(template_dir, f))
+ and path.splitext(f)[-1] in extensions
+ and check_basename_ending(template_type, path.splitext(f)[0])
]
return filenames
def list_template_dir(
- metafunc, extensions, exclude_nested=True, template_type="", sub_dirs=None
+ metafunc, extensions, exclude_nested=True, template_type="", sub_dirs=None
):
"""
returns the filenames excluding the nested files for a template_dir,
def get_filenames_list(
- metafunc, extensions=None, exclude_nested=False, template_type=""
+ metafunc, extensions=None, exclude_nested=False, template_type=""
):
"""
returns the filename fixtures for the template dir, either as by how its
def get_filenames_lists(
- metafunc, extensions=None, exclude_nested=False, template_type=""
+ metafunc, extensions=None, exclude_nested=False, template_type=""
):
"""
returns the list of files in the template dir, either as by how its
def get_parsed_yaml_files(
- metafunc, extensions, exclude_nested=True, template_type="", sections=None
+ metafunc, extensions, exclude_nested=True, template_type="", sections=None
):
"""
returns the list of parsed yaml files in the specified template dir,