#draft TestCase.run code that does not use wait() def run(self, test_result): def afterTearDown(deferred, result): if result.error(self.FailureClass): test_result.addFailure(self, result.error()) elif result.error(): test_result.addError(self, result.error()) else: test_result.addSuccess(): test_tesult.stopTest(self) self.__nextTest.fire() def afterMethod(deferred, result): if result.error(self.FailureClass): test_result.addFailure(self, result.error()) self._passed = False elif result.error(): test_result.addError(self, result.error()) self._passed = False else: self._passed = True deferred = self.tearDown() deferred.addCallbacks(afterTearDown, afterTearDown) def afterSetup(deferred, result): if result.error(): test_result.addError(self, result.error()) try: deferred = self._testfunc() deferred.addCallbacks(afterMethod, afterMethod) except Exception: ...