diff -r d88e53da6e66 -r 1afb90182258 eric7/DebugClients/Python/DebugClientBase.py --- a/eric7/DebugClients/Python/DebugClientBase.py Wed May 18 09:19:09 2022 +0200 +++ b/eric7/DebugClients/Python/DebugClientBase.py Wed May 18 10:54:32 2022 +0200 @@ -799,194 +799,6 @@ elif method == "RequestCompletion": self.__completionList(params["text"]) - - elif method == "RequestUTDiscover": - if params["syspath"]: - sys.path = params["syspath"] + sys.path - - discoveryStart = params["discoverystart"] - if not discoveryStart: - discoveryStart = params["workdir"] - - top_level_dir = params["workdir"] - - os.chdir(params["discoverystart"]) - - # set the system exception handling function to ensure, that - # we report on all unhandled exceptions - sys.excepthook = self.__unhandled_exception - self.__interceptSignals() - - try: - import unittest - testLoader = unittest.TestLoader() - test = testLoader.discover( - discoveryStart, top_level_dir=top_level_dir) - if (hasattr(testLoader, "errors") and - bool(testLoader.errors)): - self.sendJsonCommand("ResponseUTDiscover", { - "testCasesList": [], - "exception": "DiscoveryError", - "message": "\n\n".join(testLoader.errors), - }) - else: - testsList = self.__assembleTestCasesList(test, - discoveryStart) - self.sendJsonCommand("ResponseUTDiscover", { - "testCasesList": testsList, - "exception": "", - "message": "", - }) - except Exception: - exc_type, exc_value, exc_tb = sys.exc_info() - self.sendJsonCommand("ResponseUTDiscover", { - "testCasesList": [], - "exception": exc_type.__name__, - "message": str(exc_value), - }) - - elif method == "RequestUTPrepare": - if params["syspath"]: - sys.path = params["syspath"] + sys.path - top_level_dir = None - if params["workdir"]: - os.chdir(params["workdir"]) - top_level_dir = params["workdir"] - - # set the system exception handling function to ensure, that - # we report on all unhandled exceptions - sys.excepthook = self.__unhandled_exception - self.__interceptSignals() - - try: - import unittest - testLoader = unittest.TestLoader() - if params["discover"]: - discoveryStart = params["discoverystart"] - if not discoveryStart: - discoveryStart = params["workdir"] - sys.path.insert( - 0, os.path.abspath(discoveryStart)) - if params["testcases"]: - self.test = testLoader.loadTestsFromNames( - params["testcases"]) - else: - self.test = testLoader.discover( - discoveryStart, top_level_dir=top_level_dir) - else: - sys.path.insert( - 0, - os.path.dirname(os.path.abspath(params["filename"])) - ) - if params["filename"]: - utModule = __import__(params["testname"]) - else: - utModule = None - if params["failed"]: - if utModule: - failed = [t.split(".", 1)[1] - for t in params["failed"]] - else: - failed = params["failed"][:] - self.test = testLoader.loadTestsFromNames( - failed, utModule) - else: - self.test = testLoader.loadTestsFromName( - params["testfunctionname"], utModule) - except Exception: - exc_type, exc_value, exc_tb = sys.exc_info() - self.sendJsonCommand("ResponseUTPrepared", { - "count": 0, - "exception": exc_type.__name__, - "message": str(exc_value), - }) - return - - # generate a coverage object - if params["coverage"]: - from coverage import Coverage - self.cover = Coverage( - auto_data=True, - data_file="{0}.coverage".format( - os.path.splitext(params["coveragefile"])[0])) - if params["coverageerase"]: - self.cover.erase() - else: - self.cover = None - - if params["debug"]: - Breakpoint.clear_all_breaks() - Watch.clear_all_watches() - - self.sendJsonCommand("ResponseUTPrepared", { - "count": self.test.countTestCases(), - "exception": "", - "message": "", - }) - - elif method == "RequestUTRun": - from DCTestResult import DCTestResult - self.disassembly = None - self.testResult = DCTestResult(self, params["failfast"]) - if self.cover: - self.cover.start() - self.debugging = params["debug"] - if params["debug"]: - self.multiprocessSupport = False - locals_ = locals() - self.threads.clear() - self.attachThread(mainThread=True) - sys.setprofile(None) - self.running = sys.argv[0] - self.mainThread.run( - "result = self.test.run(self.testResult)\n", - self.debugMod.__dict__, - localsDict=locals_, - debug=True, - closeSession=False) - result = locals_["result"] - else: - result = self.test.run(self.testResult) - if self.cover: - self.cover.stop() - self.cover.save() - self.sendJsonCommand("ResponseUTFinished", { - "status": 0 if result.wasSuccessful() else 1, - }) - - elif method == "RequestUTStop": - self.testResult.stop() - - def __assembleTestCasesList(self, suite, start): - """ - Private method to assemble a list of test cases included in a test - suite. - - @param suite test suite to be inspected - @type unittest.TestSuite - @param start name of directory discovery was started at - @type str - @return list of tuples containing the test case ID, a short description - and the path of the test file name - @rtype list of tuples of (str, str, str) - """ - import unittest - testCases = [] - for test in suite: - if isinstance(test, unittest.TestSuite): - testCases.extend(self.__assembleTestCasesList(test, start)) - else: - testId = test.id() - if ("ModuleImportFailure" not in testId and - "LoadTestsFailure" not in testId and - "_FailedTest" not in testId): - filename = os.path.join( - start, - test.__module__.replace(".", os.sep) + ".py") - testCases.append( - (test.id(), test.shortDescription(), filename) - ) - return testCases def setDisassembly(self, disassembly): """