diff options
author | Vijayendra Radhakrishna <vradhakrishna@mvista.com> | 2016-12-02 23:08:46 +0530 |
---|---|---|
committer | Vijayendra Radhakrishna <vradhakrishna@mvista.com> | 2016-12-02 23:21:29 +0530 |
commit | b5f07669753b2b4383c7c10d133a2b803311cb8d (patch) | |
tree | 49e54645a5a87abbe0a03ded0e979205dd2a899b /tests/functest/odl-sfc/config.py | |
parent | f0791ea32270bcf9a3e1b5d3451053f6cf434e66 (diff) |
odl-sfc refactor:Enable config options for tests
- JIRA:SFC-54
- Add config.py and config.yaml for test configurations
Signed-off-by: Vijayendra Radhakrishna <vradhakrishna@mvista.com>
Change-Id: Ib1ac65a154d691d70658723a03e2508ebfa9d04b
Signed-off-by: Vijayendra Radhakrishna <vradhakrishna@mvista.com>
Diffstat (limited to 'tests/functest/odl-sfc/config.py')
-rw-r--r-- | tests/functest/odl-sfc/config.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/functest/odl-sfc/config.py b/tests/functest/odl-sfc/config.py new file mode 100644 index 00000000..556302e6 --- /dev/null +++ b/tests/functest/odl-sfc/config.py @@ -0,0 +1,63 @@ +import yaml +import os + +import functest.utils.functest_logger as ft_logger +import functest.utils.functest_utils as ft_utils +import functest.utils.functest_constants as ft_constants + +logger = ft_logger.Logger("sfc_test_config").getLogger() + + +class CommonConfig(object): + """ + Common configuration parameters across testcases + """ + + def __init__(self): + self.line_length = 30 + self.test_db = ft_utils.get_functest_config("results.test_db_url") + self.repo_path = ft_constants.SFC_REPO_DIR + self.sfc_test_dir = os.path.join(self.repo_path, "tests", + "functest", "odl-sfc") + self.functest_results_dir = os.path.join( + ft_constants.FUNCTEST_RESULTS_DIR, "odl-sfc") + self.config_file = os.path.join(self.sfc_test_dir, "config.yaml") + self.fuel_master_ip = ft_utils.get_parameter_from_yaml( + "defaults.fuel_master_ip", self.config_file) + self.fuel_master_uname = ft_utils.get_parameter_from_yaml( + "defaults.fuel_master_uname", self.config_file) + self.fuel_master_passwd = ft_utils.get_parameter_from_yaml( + "defaults.fuel_master_passwd", self.config_file) + self.flavor = ft_utils.get_parameter_from_yaml( + "defaults.flavor", self.config_file) + self.image_name = ft_utils.get_parameter_from_yaml( + "defaults.image_name", self.config_file) + self.image_file_name = ft_utils.get_parameter_from_yaml( + "defaults.image_file_name", self.config_file) + self.image_format = ft_utils.get_parameter_from_yaml( + "defaults.image_format", self.config_file) + self.url = ft_utils.get_parameter_from_yaml( + "defaults.url", self.config_file) + self.dir_functest_data = ft_utils.get_functest_config( + "general.directories.dir_functest_data") + self.image_path = os.path.join( + self.dir_functest_data, self.image_file_name) + + +class TestcaseConfig(object): + """ + Configuration for a testcase. + Parse config.yaml into a dict and create an object out of it. + """ + + def __init__(self, testcase): + common_config = CommonConfig() + test_config = None + with open(common_config.config_file) as f: + testcases_yaml = yaml.safe_load(f) + test_config = testcases_yaml['testcases'].get(testcase, None) + if test_config is None: + logger.error('Test {0} configuration is not present in {1}' + .format(testcase, common_config.config_file)) + # Update class fields with configuration variables dynamically + self.__dict__.update(**test_config) |