def _stop(self): """ Stop receiving messages from Qt, restoring the previously installed handler. """ if qInstallMsgHandler: qInstallMsgHandler(self._previous_handler) else: assert qInstallMessageHandler qInstallMessageHandler(self._previous_handler)
def pytest_runtest_setup(self, item): m = item.get_marker('qt_log_ignore') if m: ignore_regexes = m.args else: ignore_regexes = self.config.getini('qt_log_ignore') item.qt_log_capture = _QtMessageCapture(ignore_regexes) previous_handler = qInstallMsgHandler(item.qt_log_capture._handle) item.qt_previous_handler = previous_handler
def pytest_runtest_makereport(self, item, call): """Add captured Qt messages to test item report if the call failed.""" outcome = yield report = outcome.result m = item.get_marker('qt_log_level_fail') if m: log_fail_level = m.args[0] else: log_fail_level = self.config.getini('qt_log_level_fail') assert log_fail_level in QtLoggingPlugin.LOG_FAIL_OPTIONS if call.when == 'call': # make test fail if any records were captured which match # log_fail_level if log_fail_level != 'NO' and report.outcome != 'failed': for rec in item.qt_log_capture.records: if rec.matches_level(log_fail_level) and not rec.ignored: report.outcome = 'failed' if report.longrepr is None: report.longrepr = \ _QtLogLevelErrorRepr(item, log_fail_level) break # if test has failed, add recorded messages to its terminal # representation if not report.passed: long_repr = getattr(report, 'longrepr', None) if hasattr(long_repr, 'addsection'): # pragma: no cover log_format = self.config.getoption('qt_log_format') lines = [] for rec in item.qt_log_capture.records: suffix = ' (IGNORED)' if rec.ignored else '' line = log_format.format(rec=rec) + suffix lines.append(line) if lines: long_repr.addsection('Captured Qt messages', '\n'.join(lines)) qInstallMsgHandler(item.qt_previous_handler) del item.qt_previous_handler del item.qt_log_capture
def _start(self): """ Start receiving messages from Qt. """ if qInstallMsgHandler: previous_handler = qInstallMsgHandler(self._handle_no_context) else: assert qInstallMessageHandler previous_handler = qInstallMessageHandler(self._handle_with_context) self._previous_handler = previous_handler