eric7/Testing/Interfaces/TestExecutorBase.py

Sun, 05 Jun 2022 17:17:44 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 05 Jun 2022 17:17:44 +0200
branch
eric7-maintenance
changeset 9131
bc0c1b6d6adb
child 9192
a763d57e23bc
permissions
-rw-r--r--

Corrected the VCS tracing state of the recently merged files.

9131
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2022 Detlev Offenbach <detlev@die-offenbachs.de>
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the executor base class for the various testing frameworks
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 and supporting classes.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from dataclasses import dataclass
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from enum import IntEnum
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from PyQt6.QtCore import pyqtSignal, QObject, QProcess, QProcessEnvironment
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 import Preferences
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 class TestResultCategory(IntEnum):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Class defining the supported result categories.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 RUNNING = 0
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 FAIL = 1
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 OK = 2
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 SKIP = 3
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 PENDING = 4
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @dataclass
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 class TestResult:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 Class containing the test result data.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 category: TestResultCategory # result category
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 status: str # test status
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 name: str # test name
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 id: str # test id
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 description: str = "" # short description of test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 message: str = "" # short result message
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 extra: list = None # additional information text
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 duration: float = None # test duration
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 filename: str = None # file name of a failed test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 lineno: int = None # line number of a failed test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 subtestResult: bool = False # flag indicating the result of a subtest
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 @dataclass
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 class TestConfig:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Class containing the test run configuration.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 interpreter: str # path of the Python interpreter
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 discover: bool # auto discovery flag
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 discoveryStart: str # start directory for auto discovery
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 testFilename: str # name of the test script
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 testName: str # name of the test function
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 failFast: bool # stop on first fail
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 failedOnly: bool # run failed tests only
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 collectCoverage: bool # coverage collection flag
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 eraseCoverage: bool # erase coverage data first
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 coverageFile: str # name of the coverage data file
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 class TestExecutorBase(QObject):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 Base class for test framework specific implementations.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @signal collected(list of tuple of (str, str, str)) emitted after all tests
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 have been collected. Tuple elements are the test id, the test name and
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 a short description of the test.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @signal collectError(list of tuple of (str, str)) emitted when errors
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 are encountered during test collection. Tuple elements are the
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 test name and the error message.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @signal startTest(tuple of (str, str, str) emitted before tests are run.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 Tuple elements are test id, test name and short description.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @signal testResult(TestResult) emitted when a test result is ready
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 @signal testFinished(list, str) emitted when the test has finished.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 The elements are the list of test results and the captured output
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 of the test worker (if any).
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @signal testRunAboutToBeStarted() emitted just before the test run will
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 be started.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 @signal testRunFinished(int, float) emitted when the test run has finished.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 The elements are the number of tests run and the duration in seconds
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @signal stop() emitted when the test process is being stopped.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @signal coverageDataSaved(str) emitted after the coverage data was saved.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 The element is the absolute path of the coverage data file.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 collected = pyqtSignal(list)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 collectError = pyqtSignal(list)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 startTest = pyqtSignal(tuple)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 testResult = pyqtSignal(TestResult)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 testFinished = pyqtSignal(list, str)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 testRunAboutToBeStarted = pyqtSignal()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 testRunFinished = pyqtSignal(int, float)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 stop = pyqtSignal()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 coverageDataSaved = pyqtSignal(str)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 module = ""
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 name = ""
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 runner = ""
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 def __init__(self, testWidget):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 Constructor
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 @param testWidget reference to the unit test widget
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 @type TestingWidget
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 super().__init__(testWidget)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.__process = None
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 @classmethod
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 def isInstalled(cls, interpreter):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 Class method to check whether a test framework is installed.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 The test is performed by checking, if a module loader can found.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 @param interpreter interpreter to be used for the test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 @type str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 @return flag indicating the test framework module is installed
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 @rtype bool
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 if cls.runner:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 proc = QProcess()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 proc.start(interpreter, [cls.runner, "installed"])
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 if proc.waitForFinished(3000):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 exitCode = proc.exitCode()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 return exitCode == 0
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 return False
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 def getVersions(self, interpreter):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 Public method to get the test framework version and version information
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 of its installed plugins.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @param interpreter interpreter to be used for the test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 @type str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 @return dictionary containing the framework name and version and the
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 list of available plugins with name and version each
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @rtype dict
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 @exception NotImplementedError this method needs to be implemented by
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 derived classes
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 raise NotImplementedError
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 return {}
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 def hasCoverage(self, interpreter):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 Public method to get the test framework version and version information
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 of its installed plugins.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 @param interpreter interpreter to be used for the test
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 @type str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 @return flag indicating the availability of coverage functionality
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 @rtype bool
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 @exception NotImplementedError this method needs to be implemented by
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 derived classes
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 raise NotImplementedError
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 return False
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 def createArguments(self, config):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 Public method to create the arguments needed to start the test process.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 @param config configuration for the test execution
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 @type TestConfig
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 @return list of process arguments
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 @rtype list of str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 @exception NotImplementedError this method needs to be implemented by
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 derived classes
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 raise NotImplementedError
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 return []
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 def _prepareProcess(self, workDir, pythonpath):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 Protected method to prepare a process object to be started.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 @param workDir working directory
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 @type str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 @param pythonpath list of directories to be added to the Python path
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 @type list of str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 @return prepared process object
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 @rtype QProcess
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 process = QProcess(self)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 process.setProcessChannelMode(
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197 QProcess.ProcessChannelMode.MergedChannels)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 process.setWorkingDirectory(workDir)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 process.finished.connect(self.finished)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 if pythonpath:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 env = QProcessEnvironment.systemEnvironment()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 currentPythonPath = env.value('PYTHONPATH', None)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 newPythonPath = os.pathsep.join(pythonpath)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 if currentPythonPath:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 newPythonPath += os.pathsep + currentPythonPath
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 env.insert('PYTHONPATH', newPythonPath)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 process.setProcessEnvironment(env)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 return process
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 def start(self, config, pythonpath):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 Public method to start the testing process.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 @param config configuration for the test execution
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 @type TestConfig
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 @param pythonpath list of directories to be added to the Python path
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 @type list of str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 @exception RuntimeError raised if the the testing process did not start
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 workDir = (
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 config.discoveryStart
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 if config.discover else
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 os.path.dirname(config.testFilename)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 )
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.__process = self._prepareProcess(workDir, pythonpath)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 testArgs = self.createArguments(config)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 self.testRunAboutToBeStarted.emit()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 self.__process.start(config.interpreter, testArgs)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 running = self.__process.waitForStarted()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 if not running:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 raise RuntimeError
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 def finished(self):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 Public method handling the unit test process been finished.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 This method should read the results (if necessary) and emit the signal
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 testFinished.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 @exception NotImplementedError this method needs to be implemented by
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 derived classes
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 raise NotImplementedError
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 def readAllOutput(self, process=None):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
247 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 Public method to read all output of the test process.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 @param process reference to the process object
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
251 @type QProcess
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
252 @return test process output
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
253 @rtype str
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
255 if process is None:
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 process = self.__process
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 output = (
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 str(process.readAllStandardOutput(),
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 Preferences.getSystem("IOEncoding"),
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 'replace').strip()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 if process else
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 ""
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 )
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 return output
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 def stopIfRunning(self):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 Public method to stop the testing process, if it is running.
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 """
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 if (
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 self.__process and
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 self.__process.state() == QProcess.ProcessState.Running
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 ):
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 self.__process.terminate()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 self.__process.waitForFinished(2000)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 self.__process.kill()
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 self.__process.waitForFinished(3000)
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278
bc0c1b6d6adb Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 self.stop.emit()

eric ide

mercurial