示例#1
0
    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)
示例#2
0
 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
示例#3
0
 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)
示例#4
0
 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