diff options
author | Jose Lausuch <jose.lausuch@ericsson.com> | 2017-06-26 09:14:35 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-06-26 09:14:35 +0000 |
commit | 48db3a575a737f957706f58ebdfc1851c3226b63 (patch) | |
tree | 12dac53b2f1e727ef1dd20df35cf62f852743583 | |
parent | 063c8af074a70b0b99c5c90c56d1fef541354192 (diff) | |
parent | e900266978e7f02c1999d1095c9d1468d05ea904 (diff) |
Merge "Define logger as Feature instance attribute"
-rw-r--r-- | functest/core/feature.py | 18 | ||||
-rw-r--r-- | functest/tests/unit/core/test_feature.py | 23 |
2 files changed, 37 insertions, 4 deletions
diff --git a/functest/core/feature.py b/functest/core/feature.py index d53eb7d0e..010ff4bc9 100644 --- a/functest/core/feature.py +++ b/functest/core/feature.py @@ -33,6 +33,24 @@ class Feature(base.TestCase): super(Feature, self).__init__(**kwargs) self.result_file = "{}/{}.log".format( CONST.__getattribute__('dir_results'), self.case_name) + try: + module = kwargs['run']['module'] + self.logger = logging.getLogger(module) + except KeyError: + self.__logger.warning( + "Cannot get module name %s. Using %s as fallback", + kwargs, self.case_name) + self.logger = logging.getLogger(self.case_name) + handler = logging.StreamHandler() + handler.setLevel(logging.WARN) + self.logger.addHandler(handler) + handler = logging.FileHandler(self.result_file) + handler.setLevel(logging.DEBUG) + self.logger.addHandler(handler) + formatter = logging.Formatter( + '%(asctime)s - %(name)s - %(levelname)s - %(message)s') + handler.setFormatter(formatter) + self.logger.addHandler(handler) def execute(self, **kwargs): """Execute the Python method. diff --git a/functest/tests/unit/core/test_feature.py b/functest/tests/unit/core/test_feature.py index 0160c8e16..988981eff 100644 --- a/functest/tests/unit/core/test_feature.py +++ b/functest/tests/unit/core/test_feature.py @@ -38,12 +38,26 @@ class FeatureTestingBase(unittest.TestCase): self.assertEqual(self.feature.start_time, 1) self.assertEqual(self.feature.stop_time, 2) + def test_logger_module_ko(self): + with mock.patch('six.moves.builtins.open'): + self.feature = feature.Feature( + project_name=self._project_name, case_name=self._case_name) + self.assertEqual(self.feature.logger.name, self._case_name) + + def test_logger_module(self): + with mock.patch('six.moves.builtins.open'): + self.feature = feature.Feature( + project_name=self._project_name, case_name=self._case_name, + run={'module': 'bar'}) + self.assertEqual(self.feature.logger.name, 'bar') + class FeatureTesting(FeatureTestingBase): def setUp(self): - self.feature = feature.Feature( - project_name=self._project_name, case_name=self._case_name) + with mock.patch('six.moves.builtins.open'): + self.feature = feature.Feature( + project_name=self._project_name, case_name=self._case_name) def test_run_exc(self): # pylint: disable=bad-continuation @@ -60,8 +74,9 @@ class FeatureTesting(FeatureTestingBase): class BashFeatureTesting(FeatureTestingBase): def setUp(self): - self.feature = feature.BashFeature( - project_name=self._project_name, case_name=self._case_name) + with mock.patch('six.moves.builtins.open'): + self.feature = feature.BashFeature( + project_name=self._project_name, case_name=self._case_name) @mock.patch("functest.utils.functest_utils.execute_command") def test_run_no_cmd(self, mock_method=None): |