4 from functest.utils.constants import CONST
5 import functest.utils.functest_logger as ft_logger
6 import functest.utils.functest_utils as ft_utils
8 logger = ft_logger.Logger("sndvpn_test_config").getLogger()
11 class CommonConfig(object):
13 Common configuration parameters across testcases
17 self.repo_path = CONST.dir_repo_sdnvpn
18 self.config_file = os.path.join(self.repo_path,
19 'sdnvpn/test/functest/config.yaml')
20 self.keyfile_path = os.path.join(self.repo_path,
21 'sdnvpn/artifacts/id_rsa')
22 self.test_db = ft_utils.get_functest_config("results.test_db_url")
23 self.line_length = 90 # length for the summary table
24 self.vm_boot_timeout = 180
25 self.default_flavor = ft_utils.get_parameter_from_yaml(
26 "defaults.flavor", self.config_file)
27 self.image_filename = ft_utils.get_functest_config(
28 "general.openstack.image_file_name")
29 self.image_format = ft_utils.get_functest_config(
30 "general.openstack.image_disk_format")
31 self.image_path = '{0}/{1}'.format(
32 ft_utils.get_functest_config(
33 "general.directories.dir_functest_data"),
37 class TestcaseConfig(object):
39 Configuration for a testcase.
40 Parse config.yaml into a dict and create an object out of it.
43 def __init__(self, testcase):
44 common_config = CommonConfig()
46 with open(common_config.config_file) as f:
47 testcases_yaml = yaml.safe_load(f)
48 test_config = testcases_yaml['testcases'].get(testcase, None)
49 if test_config is None:
50 logger.error('Test {0} configuration is not present in {1}'
51 .format(testcase, common_config.config_file))
52 # Update class fields with configuration variables dynamically
53 self.__dict__.update(**test_config)