[loggers]
-keys=root,xtesting,ci,core,energy,utils
+keys=root,xtesting,ci,core
[handlers]
-keys=console,wconsole,file,null
+keys=console,wconsole,file
[formatters]
keys=standard
[logger_root]
level=NOTSET
-handlers=null
+handlers=wconsole,file
[logger_xtesting]
level=NOTSET
handlers=console
qualname=xtesting.core
-[logger_energy]
-level=NOTSET
-handlers=wconsole
-qualname=xtesting.energy
-
-[logger_utils]
-level=NOTSET
-handlers=wconsole
-qualname=xtesting.utils
-
-[handler_null]
-class=NullHandler
-level=NOTSET
-formatter=standard
-args=()
-
[handler_console]
class=StreamHandler
level=INFO
"""Base model for single feature."""
__logger = logging.getLogger(__name__)
- dir_results = "/var/lib/xtesting/results"
-
- def __init__(self, **kwargs):
- super(Feature, self).__init__(**kwargs)
- self.result_file = "{}/{}.log".format(self.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)
- Feature.configure_logger(self.logger, self.result_file)
-
- @staticmethod
- def configure_logger(logger, result_file):
- """Configure the logger to print in result_file."""
- handler = logging.StreamHandler()
- handler.setLevel(logging.WARN)
- logger.addHandler(handler)
- handler = logging.FileHandler(result_file)
- handler.setLevel(logging.DEBUG)
- logger.addHandler(handler)
- formatter = logging.Formatter(
- '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
- handler.setFormatter(formatter)
- logger.addHandler(handler)
def execute(self, **kwargs):
"""Execute the Python method.
self.result = 100
except Exception: # pylint: disable=broad-except
self.__logger.exception("%s FAILED", self.project_name)
- self.__logger.info("Test result is stored in '%s'", self.result_file)
self.stop_time = time.time()
return exit_code
__logger = logging.getLogger(__name__)
+ def __init__(self, **kwargs):
+ super(BashFeature, self).__init__(**kwargs)
+ dir_results = "/var/lib/xtesting/results"
+ self.result_file = "{}/{}.log".format(dir_results, self.case_name)
+
def execute(self, **kwargs):
"""Execute the cmd passed as arg
proc = subprocess.Popen(cmd.split(), stdout=f_stdout,
stderr=subprocess.STDOUT)
ret = proc.wait()
+ self.__logger.info(
+ "Test result is stored in '%s'", self.result_file)
if ret != 0:
self.__logger.error("Execute command: %s failed", cmd)
except KeyError:
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):