예제 #1
0
    def __init__(
        self,
        pattern=None,
        top_level=None,
        verbosity=1,
        interactive=True,
        failfast=False,
        keepdb=False,
        reverse=False,
        debug_mode=False,
        debug_sql=False,
        parallel=0,
        tags=None,
        exclude_tags=None,
        test_name_patterns=None,
        pdb=False,
        buffer=False,
        enable_faulthandler=True,
        timing=False,
        shuffle=False,
        logger=None,
        **kwargs,
    ):

        self.pattern = pattern
        self.top_level = top_level
        self.verbosity = verbosity
        self.interactive = interactive
        self.failfast = failfast
        self.keepdb = keepdb
        self.reverse = reverse
        self.debug_mode = debug_mode
        self.debug_sql = debug_sql
        self.parallel = parallel
        self.tags = set(tags or [])
        self.exclude_tags = set(exclude_tags or [])
        if not faulthandler.is_enabled() and enable_faulthandler:
            try:
                faulthandler.enable(file=sys.stderr.fileno())
            except (AttributeError, io.UnsupportedOperation):
                faulthandler.enable(file=sys.__stderr__.fileno())
        self.pdb = pdb
        if self.pdb and self.parallel > 1:
            raise ValueError(
                "You cannot use --pdb with parallel tests; pass --parallel=1 to use it."
            )
        self.buffer = buffer
        self.test_name_patterns = None
        self.time_keeper = TimeKeeper() if timing else NullTimeKeeper()
        if test_name_patterns:
            # unittest does not export the _convert_select_pattern function
            # that converts command-line arguments to patterns.
            self.test_name_patterns = {
                pattern if "*" in pattern else "*%s*" % pattern
                for pattern in test_name_patterns
            }
        self.shuffle = shuffle
        self._shuffler = None
        self.logger = logger
예제 #2
0
    def handle(self, *test_labels, **options):
        TestRunner = get_runner(settings, options['testrunner'])

        time_keeper = TimeKeeper() if options.get('timing',
                                                  False) else NullTimeKeeper()
        test_runner = TestRunner(**options)
        with time_keeper.timed('Total run'):
            failures = test_runner.run_tests(test_labels)
        time_keeper.print_results()
        if failures:
            sys.exit(1)
예제 #3
0
         options.bisect,
         options,
         options.modules,
         options.start_at,
         options.start_after,
     )
 elif options.pair:
     paired_tests(
         options.pair,
         options,
         options.modules,
         options.start_at,
         options.start_after,
     )
 else:
     time_keeper = TimeKeeper() if options.timing else NullTimeKeeper()
     with time_keeper.timed('Total run'):
         failures = django_tests(
             options.verbosity,
             options.interactive,
             options.failfast,
             options.keepdb,
             options.reverse,
             options.modules,
             options.debug_sql,
             options.parallel,
             options.tags,
             options.exclude_tags,
             getattr(options, 'test_name_patterns', None),
             options.start_at,
             options.start_after,
예제 #4
0
 def wrapped_setup_databases(*args, **kwargs):
     return setup_databases(*args,
                            time_keeper=NullTimeKeeper(),
                            **kwargs)