Sun, 05 Jun 2022 17:17:44 +0200
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 for the 'pytest' framework. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
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 | import contextlib |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import json |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import os |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from PyQt6.QtCore import pyqtSlot, QProcess |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from EricNetwork.EricJsonStreamReader import EricJsonReader |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | from .TestExecutorBase import TestExecutorBase, TestResult, TestResultCategory |
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 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | class PytestExecutor(TestExecutorBase): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | Class implementing the executor for the 'pytest' framework. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | module = "pytest" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | name = "pytest" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | runner = os.path.join(os.path.dirname(__file__), "PytestRunner.py") |
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 | def __init__(self, testWidget): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | Constructor |
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 | @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
|
35 | @type TestingWidget |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | super().__init__(testWidget) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__statusDisplayMapping = { |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | "failed": self.tr("Failure"), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
41 | "skipped": self.tr("Skipped"), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | "xfailed": self.tr("Expected Failure"), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | "xpassed": self.tr("Unexpected Success"), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | "passed": self.tr("Success"), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | } |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | self.__config = None |
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 | def getVersions(self, interpreter): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | 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
|
52 | of its installed plugins. |
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 | @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
|
55 | @type str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | @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
|
57 | 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
|
58 | @rtype dict |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | proc = QProcess() |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
61 | proc.start(interpreter, [PytestExecutor.runner, "versions"]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | if proc.waitForFinished(3000): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | exitCode = proc.exitCode() |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | if exitCode == 0: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
65 | outputLines = self.readAllOutput(proc).splitlines() |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | for line in outputLines: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | if line.startswith("{") and line.endswith("}"): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | with contextlib.suppress(json.JSONDecodeError): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | return json.loads(line) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | return {} |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | def hasCoverage(self, interpreter): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | 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
|
76 | of its installed plugins. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | @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
|
79 | @type str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | @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
|
81 | @rtype bool |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | versions = self.getVersions(interpreter) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | if "plugins" in versions: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | return any(plugin["name"] == "pytest-cov" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | for plugin in versions["plugins"]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | return False |
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 | def createArguments(self, config): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
91 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | 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
|
93 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | @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
|
95 | @type TestConfig |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | @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
|
97 | @rtype list of str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | """ |
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 | # collectCoverage: --cov= + --cov-report= to suppress report generation |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | # eraseCoverage: --cov-append if eraseCoverage is False |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | # coverageFile |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | args = [ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | PytestExecutor.runner, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | "runtest", |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | self.reader.address(), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | str(self.reader.port()), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | "--quiet", |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | ] |
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 | if config.failFast: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | args.append("--exitfirst") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | if config.failedOnly: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | args.append("--last-failed") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | else: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | args.append("--cache-clear") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | if config.collectCoverage: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | args.extend([ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | "--cov=.", |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | "--cov-report=" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | ]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | if not config.eraseCoverage: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | args.append("--cov-append") |
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 config.testFilename: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | if config.testName: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | args.append("{0}::{1}".format( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | config.testFilename, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | config.testName.replace(".", "::") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | )) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | else: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | args.append(config.testFilename) |
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 | return args |
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 | 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
|
139 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | 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
|
141 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | @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
|
143 | @type TestConfig |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | @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
|
145 | @type list of str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
147 | self.reader = EricJsonReader(name="Unittest Reader", parent=self) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | self.reader.dataReceived.connect(self.__processData) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
149 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | self.__config = config |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | if config.discoveryStart: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | pythonpath.insert(0, os.path.abspath(config.discoveryStart)) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | elif config.testFilename: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | pythonpath.insert( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | 0, os.path.abspath(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
|
157 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | if config.discover: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | self.__rootdir = config.discoveryStart |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
160 | elif config.testFilename: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
161 | self.__rootdir = 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
|
162 | else: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
163 | self.__rootdir = "" |
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 | super().start(config, pythonpath) |
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 | def finished(self): |
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 | 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
|
170 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | 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
|
172 | testFinished. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
174 | if self.__config.collectCoverage: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
175 | self.coverageDataSaved.emit( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
176 | os.path.join(self.__rootdir, ".coverage")) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
177 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
178 | self.__config = None |
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 | self.reader.close() |
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 | output = self.readAllOutput() |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | self.testFinished.emit([], output) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
184 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
185 | @pyqtSlot(object) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
186 | def __processData(self, data): |
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 | Private slot to process the received data. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | @param data data object received |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
191 | @type dict |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
193 | # test configuration |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
194 | if data["event"] == "config": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
195 | self.__rootdir = data["root"] |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
196 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
197 | # error collecting tests |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
198 | elif data["event"] == "collecterror": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
199 | name = self.__normalizeModuleName(data["nodeid"]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
200 | self.collectError.emit([(name, data["report"])]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
201 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
202 | # tests collected |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
203 | elif data["event"] == "collected": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
204 | self.collected.emit([ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
205 | (data["nodeid"], |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
206 | self.__nodeid2testname(data["nodeid"]), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
207 | "") |
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 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
210 | # test started |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
211 | elif data["event"] == "starttest": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | self.startTest.emit( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
213 | (data["nodeid"], |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
214 | self.__nodeid2testname(data["nodeid"]), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
215 | "") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
216 | ) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
217 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
218 | # test result |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
219 | elif data["event"] == "result": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
220 | if data["status"] in ("failed", "xpassed") or data["with_error"]: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
221 | category = TestResultCategory.FAIL |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
222 | elif data["status"] in ("passed", "xfailed"): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
223 | category = TestResultCategory.OK |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
224 | else: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
225 | category = TestResultCategory.SKIP |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
226 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
227 | status = ( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
228 | self.tr("Error") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
229 | if data["with_error"] else |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
230 | self.__statusDisplayMapping[data["status"]] |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
231 | ) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
232 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
233 | message = data.get("message", "") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
234 | extraText = data.get("report", "") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
235 | reportPhase = data.get("report_phase") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
236 | if reportPhase in ("setup", "teardown"): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
237 | message = ( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
238 | self.tr("ERROR at {0}: {1}", "phase, message") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
239 | .format(reportPhase, message) |
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 | extraText = ( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
242 | self.tr("ERROR at {0}: {1}", "phase, extra text") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
243 | .format(reportPhase, extraText) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
244 | ) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | sections = data.get("sections", []) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | if sections: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
247 | extraText += "\n" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | for heading, text in sections: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | extraText += "----- {0} -----\n{1}".format(heading, text) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | duration = data.get("duration_s", None) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | if duration: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | # convert to ms |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
254 | duration *= 1000 |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | filename = data["filename"] |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | if self.__rootdir: |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | filename = os.path.join(self.__rootdir, filename) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
259 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
260 | self.testResult.emit(TestResult( |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
261 | category=category, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
262 | status=status, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
263 | name=self.__nodeid2testname(data["nodeid"]), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | id=data["nodeid"], |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
265 | description="", |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
266 | message=message, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
267 | extra=extraText.rstrip().splitlines(), |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
268 | duration=duration, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
269 | filename=filename, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
270 | lineno=data.get("linenumber", 0) + 1, |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
271 | # pytest reports 0-based line numbers |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
272 | )) |
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 | # test run finished |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
275 | elif data["event"] == "finished": |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
276 | self.testRunFinished.emit(data["tests"], data["duration_s"]) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
277 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
278 | def __normalizeModuleName(self, name): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
279 | r""" |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
280 | Private method to convert a module name reported by pytest to Python |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
281 | conventions. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
282 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | This method strips the extensions '.pyw' and '.py' first and replaces |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
284 | '/' and '\' thereafter. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
285 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
286 | @param name module name reported by pytest |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
287 | @type str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
288 | @return module name iaw. Python conventions |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
289 | @rtype str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
290 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
291 | return (name |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
292 | .replace(".pyw", "") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
293 | .replace(".py", "") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
294 | .replace("/", ".") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
295 | .replace("\\", ".")) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
296 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
297 | def __nodeid2testname(self, nodeid): |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
298 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
299 | Private method to convert a nodeid to a test name. |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
300 | |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
301 | @param nodeid nodeid to be converted |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
302 | @type str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
303 | @return test name |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
304 | @rtype str |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
305 | """ |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
306 | module, name = nodeid.split("::", 1) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
307 | module = self.__normalizeModuleName(module) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
308 | name = name.replace("::", ".") |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
309 | testname, name = "{0}.{1}".format(module, name).rsplit(".", 1) |
bc0c1b6d6adb
Corrected the VCS tracing state of the recently merged files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
310 | return "{0} ({1})".format(name, testname) |