Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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
Example #4
0
    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
Example #5
0
 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
Example #6
0
 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