oeqa/utils/__init__.py: Adds compatibility with bitbake logger

The bitbake logger changes the way debug is logged and adds
different levels within debug, this is passed as argument
to the function and breaks compatibility with vanilla loggers.

This implements a way to handle this adding a new function for
debug, that will dispatch the correct logging method signature.

Also overrides info method to use logging.INFO + 1 in order to
see plain data.

Also this commit fix the issue of not showing the test summary
and results when running from bitbake.

[YOCTO #10686]

(From OE-Core rev: 619c9ab308fbef9e3563dc661e432603e764b562)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2016-12-21 13:14:00 +00:00 committed by Richard Purdie
parent ad2168365f
commit bbb7366db3
1 changed files with 30 additions and 0 deletions

View File

@ -36,3 +36,33 @@ def avoid_paths_in_environ(paths):
new_path = new_path[:-1]
return new_path
def make_logger_bitbake_compatible(logger):
import logging
"""
Bitbake logger redifines debug() in order to
set a level within debug, this breaks compatibility
with vainilla logging, so we neeed to redifine debug()
method again also add info() method with INFO + 1 level.
"""
def _bitbake_log_debug(*args, **kwargs):
lvl = logging.DEBUG
if isinstance(args[0], int):
lvl = args[0]
msg = args[1]
args = args[2:]
else:
msg = args[0]
args = args[1:]
logger.log(lvl, msg, *args, **kwargs)
def _bitbake_log_info(msg, *args, **kwargs):
logger.log(logging.INFO + 1, msg, *args, **kwargs)
logger.debug = _bitbake_log_debug
logger.info = _bitbake_log_info
return logger