From 37d2ea401150cf7c9faf5474b0418b577715efb3 Mon Sep 17 00:00:00 2001 From: Federico Ressi Date: Fri, 7 Aug 2020 15:56:28 +0200 Subject: [PATCH] Add timestamp, level and modulename to the format for capture log Change-Id: I7f612203d2fe95181a7cd4093d889df745339b6a --- tobiko/common/_logging.py | 7 ++++++- tobiko/tests/unit/test_logging.py | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tobiko/common/_logging.py b/tobiko/common/_logging.py index 93953897f..e13414462 100644 --- a/tobiko/common/_logging.py +++ b/tobiko/common/_logging.py @@ -30,17 +30,22 @@ class CaptureLogFixture(_fixture.SharedFixture): level = None logger = logging.root handler = None + format = "%(asctime)-15s %(levelname)s %(name)s | %(message)s" - def __init__(self, test_case_id, logger=None, level=None): + def __init__(self, test_case_id, logger=None, level=None, fmt=None): super(CaptureLogFixture, self).__init__() self.test_case_id = test_case_id if logger: self.logger = logger if level: self.level = level + if fmt: + self.format = fmt def setup_fixture(self): self.handler = handler = CaptureLogHandler(level=self.level) + formatter = logging.Formatter(self.format) + handler.setFormatter(formatter) self.addCleanup(self.logger.removeHandler, handler) self.logger.addHandler(handler) LOG.debug('--- BEGIN %s ---', self.test_case_id) diff --git a/tobiko/tests/unit/test_logging.py b/tobiko/tests/unit/test_logging.py index 7bce01704..2cf34b6d8 100644 --- a/tobiko/tests/unit/test_logging.py +++ b/tobiko/tests/unit/test_logging.py @@ -27,6 +27,13 @@ class CapureLogTest(unit.TobikoUnitTest): def test_capture_log_content(self): with tobiko.CaptureLogFixture(test_case_id=self.id()) as capture: - LOG.warning('Some debug line') + LOG.warning('< Some debug line>') logged_lines = capture.getDetails()['log'].as_text().splitlines() - self.assertIn('Some debug line', logged_lines) + expected = f" WARNING {__name__} | < Some debug line>" + for line in logged_lines: + if expected in line: + break + else: + lines = '\n'.join(logged_lines) + self.fail(f"log line not captured: '{expected}' not in \n" + f"{lines}")