Update Xtesting to 0.98
[functest.git] / functest / utils / config.py
index 050f12a..40414b8 100644 (file)
@@ -2,22 +2,24 @@
 
 # pylint: disable=missing-docstring
 
-import os
 import pkg_resources
 import yaml
 
 import six
 
+from functest.utils import env
 
-class Config(object):
+
+class Config():
     def __init__(self):
         try:
-            # pylint: disable=bad-continuation
             with open(pkg_resources.resource_filename(
-                    'functest', 'ci/config_functest.yaml')) as yfile:
+                    'functest', 'ci/config_functest.yaml'),
+                    encoding='utf-8') as yfile:
                 self.functest_yaml = yaml.safe_load(yfile)
         except Exception as error:
-            raise Exception('Parse config failed: {}'.format(str(error)))
+            raise Exception(
+                f'Parse config failed: {str(error)}') from error
 
     @staticmethod
     def _merge_dicts(dict1, dict2):
@@ -33,11 +35,11 @@ class Config(object):
                 yield (k, dict2[k])
 
     def patch_file(self, patch_file_path):
-        with open(patch_file_path) as yfile:
+        with open(patch_file_path, encoding='utf-8') as yfile:
             patch_file = yaml.safe_load(yfile)
 
         for key in patch_file:
-            if key in os.environ.get('DEPLOY_SCENARIO', ""):
+            if key in env.get('DEPLOY_SCENARIO'):
                 self.functest_yaml = dict(Config._merge_dicts(
                     self.functest_yaml, patch_file[key]))
 
@@ -45,26 +47,27 @@ class Config(object):
         for param_n, param_v in six.iteritems(left_parametes):
             attr_further = self._get_attr_further(attr_now, param_n)
             if attr_further:
-                self.__setattr__(attr_further, param_v)
+                setattr(self, attr_further, param_v)
             if isinstance(param_v, dict):
                 self._parse(attr_further, param_v)
 
     @staticmethod
     def _get_attr_further(attr_now, next):  # pylint: disable=redefined-builtin
         return attr_now if next == 'general' else (
-            '{}_{}'.format(attr_now, next) if attr_now else next)
+            f'{attr_now}_{next}' if attr_now else next)
 
     def fill(self):
         try:
             self._parse(None, self.functest_yaml)
         except Exception as error:
-            raise Exception('Parse config failed: {}'.format(str(error)))
+            raise Exception(
+                f'Parse config failed: {str(error)}') from error
 
 
 CONF = Config()
 CONF.patch_file(pkg_resources.resource_filename(
     'functest', 'ci/config_patch.yaml'))
-if os.getenv("POD_ARCH", None) and os.getenv("POD_ARCH", None) in ['aarch64']:
+if env.get("POD_ARCH") in ['aarch64']:
     CONF.patch_file(pkg_resources.resource_filename(
         'functest', 'ci/config_aarch64_patch.yaml'))
 CONF.fill()