From bce06d6f43bf404e6ef729fe6820ce48f8dc77b9 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Sat, 2 Jul 2016 13:51:10 +0200 Subject: [PATCH] quteproc: mark expected errors as such Fixes #1611 This marks errors that are expected by a test with an "(Expected)" marker and white color (instead of red). The formatting of the log messages has been deferred to _render_log, since the .expected attribute is not correctly set right after we read the message. --- tests/end2end/fixtures/quteprocess.py | 23 +++++++++----- tests/end2end/fixtures/test_quteprocess.py | 36 ++++++++++++++++++---- tests/end2end/fixtures/testprocess.py | 1 + 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/tests/end2end/fixtures/quteprocess.py b/tests/end2end/fixtures/quteprocess.py index c894acdc3..05d9865af 100644 --- a/tests/end2end/fixtures/quteprocess.py +++ b/tests/end2end/fixtures/quteprocess.py @@ -92,9 +92,10 @@ class LogLine(testprocess.Line): self.message = msg_match.group('message') self.expected = is_ignored_qt_message(self.message) + self.use_color = False def __str__(self): - return self.formatted_str(colorized=False) + return self.formatted_str(colorized=self.use_color) def formatted_str(self, colorized=True): """Return a formatted colorized line. @@ -113,7 +114,18 @@ class LogLine(testprocess.Line): r.module = self.module r.funcName = self.function - formatter = log.ColoredFormatter(log.EXTENDED_FMT, log.DATEFMT, '{', + format_str = log.EXTENDED_FMT + # Mark expected errors with (Expected) so it's less confusing for tests + # which expect errors but fail due to other errors. + if self.expected and self.loglevel >= log.LOG_LEVELS['ERROR']: + new_color = '{' + log.LOG_COLORS['DEBUG'] + '}' + format_str = format_str.replace('{log_color}', new_color) + format_str = re.sub(r'{levelname:(\d*)}', + # Leave away the padding because (Expected) is + # longer anyway. + r'{levelname} (Expected)', format_str) + + formatter = log.ColoredFormatter(format_str, log.DATEFMT, '{', use_colors=colorized) result = formatter.format(r) # Manually append the stringified traceback if one is present @@ -186,11 +198,8 @@ class QuteProc(testprocess.Process): else: raise - if self._config.getoption('--color') != 'no': - line_to_log = log_line.formatted_str() - else: - line_to_log = log_line.formatted_str(colorized=False) - self._log(line_to_log) + log_line.use_color = self._config.getoption('--color') != 'no' + self._log(log_line) start_okay_message_load = ( "load status for threshold and