def run(self): catchbreak = self.unit_test.pop("catchbreak") if catchbreak: from unittest.signals import installHandler installHandler() # Before use the output, we save the original for reset in the end org_out = sys.stdout org_err = sys.stderr try: test_runner = TestRunner(**self.__dict__) if test_runner.exit_request is None: if self.is_django: from django.test.simple import DjangoTestSuiteRunner dtsr = DjangoTestSuiteRunner(**self.unit_test) dtsr.setup_test_environment() old_config = dtsr.setup_databases() test_runner.run(self.test_list) dtsr.teardown_databases(old_config) dtsr.teardown_test_environment() else: test_runner.run(self.test_list) except Exception: print_exception() finally: # Return the output sys.stdout = org_out sys.stderr = org_err if isinstance(test_runner.exit_request, int): sys.exit(test_runner.exit_request)
def run(self, test): result_test = TextTestRunner.run(self, test) try: if self.extension["requested"]: self.result["stop_test"] = datetime.now() self.result["tests"] = result_test.result use_readable_format(self.result) self.ext_class.generate_document(self.config_file, self.result, result_test, **self.kwdict) except Exception, e: print_exception() print "Problem to execute the extension [%s]" % e
def prepare_test_list(self): test_loader = TestLoader() try: if len(self.args) > 0: self.test_list = test_loader.loadTestsFromNames(self.args, None) else: self.test_list = test_loader.discover(".", "test*.py", None) except: print "Problem to import load the test(s)." print "If you are sure that the import is correct, check if source if don't have a wrong import declaration." print_exception() sys.exit(1)
def __init__(self, **kwargs): if "unit_test" not in kwargs: raise ValueError("Was not send the parameter unit_test in " "TestRunner initialization") if "extension" not in kwargs: raise ValueError("Was not send the parameter extension in " "TestRunner initialization") self.exit_request = None self.config_file = None self.ext_class = None self.result = {} for key in kwargs: setattr(self, key, kwargs[key]) if "stream" not in self.unit_test or self.unit_test["stream"] is None: self.unit_test["stream"] = sys.stderr if self.extension["requested"]: try: self.config_file = Config(path=getcwd(), file_name=self.extension["ext_file"]) except Exception, e: print_exception() print "Problem with the file configuration in %s with the " + "message [%s] " % e self.exit_request = 1 return try: extension = self.extension["module"] package = "pddoctest.extensions" if extension.find(".") > 0: package, extension = extension.rsplit(".", 1) self.ext_class = __import__(".".join([package, extension]), fromlist=extension) if "show_help" in dir(self.ext_class) and self.extension["ext_type"] == 0: self.ext_class.show_help() self.exit_request = 0 return if self.unit_test["verbosity"] == 0: self.unit_test["stream"] = NullDevice() self.unit_test["resultclass"] = DataTestResult self.result["start_test"] = datetime.now() except: print_exception() print "The extension [%s] was not found" % extension