コード例 #1
0
    def run(self):
        """
        Executes target runnable defined in configuration in a separate thread.

        :return: Runnable result object.
        :rtype: :py:class:
            `RunnableResult <testplan.common.entity.base.RunnableResult>`
        """
        try:
            for sig in self._cfg.abort_signals:
                signal.signal(sig, self._handle_abort)
        except ValueError:
            self.logger.warning(
                "Not able to install signal handler - signal only works in main thread"
            )

        execute_as_thread(
            self._runnable.run,
            daemon=True,
            join=True,
            break_join=lambda: self.aborted is True,
        )
        if self._runnable.interactive is not None:
            return self._runnable.interactive
        if isinstance(self._runnable.result, Exception):
            raise self._runnable.result
        return self._runnable.result
コード例 #2
0
ファイル: base.py プロジェクト: laszlo-bica/testplan
    def run(self):
        """
        Executes target runnable defined in configuration in a separate thread.

        :return: Runnable result object.
        :rtype: :py:class:`RunnableResult <testplan.common.entity.base.RunnableResult>`
        """
        for sig in self._cfg.abort_signals:
            signal.signal(sig, self._handle_abort)
        execute_as_thread(self._runnable.run,
                          daemon=True,
                          join=True,
                          break_join=lambda: self.aborted is True)
        if isinstance(self._runnable.result, Exception):
            raise self._runnable.result
        return self._runnable.result