|
@@ -581,6 +581,19 @@ class DiscoverRunner:
|
|
),
|
|
),
|
|
)
|
|
)
|
|
|
|
|
|
|
|
+ def log(self, msg, level=None):
|
|
|
|
+ """
|
|
|
|
+ Log the given message at the given logging level.
|
|
|
|
+
|
|
|
|
+ A verbosity of 1 logs INFO (the default level) or above, and verbosity
|
|
|
|
+ 2 or higher logs all levels.
|
|
|
|
+ """
|
|
|
|
+ if self.verbosity <= 0 or (
|
|
|
|
+ self.verbosity == 1 and level is not None and level < logging.INFO
|
|
|
|
+ ):
|
|
|
|
+ return
|
|
|
|
+ print(msg)
|
|
|
|
+
|
|
def setup_test_environment(self, **kwargs):
|
|
def setup_test_environment(self, **kwargs):
|
|
setup_test_environment(debug=self.debug_mode)
|
|
setup_test_environment(debug=self.debug_mode)
|
|
unittest.installHandler()
|
|
unittest.installHandler()
|
|
@@ -639,11 +652,16 @@ class DiscoverRunner:
|
|
all_tests.extend(iter_test_cases(extra_tests))
|
|
all_tests.extend(iter_test_cases(extra_tests))
|
|
|
|
|
|
if self.tags or self.exclude_tags:
|
|
if self.tags or self.exclude_tags:
|
|
- if self.verbosity >= 2:
|
|
+ if self.tags:
|
|
- if self.tags:
|
|
+ self.log(
|
|
- print('Including test tag(s): %s.' % ', '.join(sorted(self.tags)))
|
|
+ 'Including test tag(s): %s.' % ', '.join(sorted(self.tags)),
|
|
- if self.exclude_tags:
|
|
+ level=logging.DEBUG,
|
|
- print('Excluding test tag(s): %s.' % ', '.join(sorted(self.exclude_tags)))
|
|
+ )
|
|
|
|
+ if self.exclude_tags:
|
|
|
|
+ self.log(
|
|
|
|
+ 'Excluding test tag(s): %s.' % ', '.join(sorted(self.exclude_tags)),
|
|
|
|
+ level=logging.DEBUG,
|
|
|
|
+ )
|
|
all_tests = filter_tests_by_tags(all_tests, self.tags, self.exclude_tags)
|
|
all_tests = filter_tests_by_tags(all_tests, self.tags, self.exclude_tags)
|
|
|
|
|
|
|
|
|
|
@@ -651,8 +669,7 @@ class DiscoverRunner:
|
|
|
|
|
|
test_types = (unittest.loader._FailedTest, *self.reorder_by)
|
|
test_types = (unittest.loader._FailedTest, *self.reorder_by)
|
|
all_tests = list(reorder_tests(all_tests, test_types, self.reverse))
|
|
all_tests = list(reorder_tests(all_tests, test_types, self.reverse))
|
|
- if self.verbosity >= 1:
|
|
+ self.log('Found %d tests.' % len(all_tests), level=logging.INFO)
|
|
- print('Found %d tests.' % len(all_tests))
|
|
|
|
suite = self.test_suite(all_tests)
|
|
suite = self.test_suite(all_tests)
|
|
|
|
|
|
if self.parallel > 1:
|
|
if self.parallel > 1:
|
|
@@ -736,10 +753,12 @@ class DiscoverRunner:
|
|
|
|
|
|
def get_databases(self, suite):
|
|
def get_databases(self, suite):
|
|
databases = self._get_databases(suite)
|
|
databases = self._get_databases(suite)
|
|
- if self.verbosity >= 2:
|
|
+ unused_databases = [alias for alias in connections if alias not in databases]
|
|
- unused_databases = [alias for alias in connections if alias not in databases]
|
|
+ if unused_databases:
|
|
- if unused_databases:
|
|
+ self.log(
|
|
- print('Skipping setup of unused database(s): %s.' % ', '.join(sorted(unused_databases)))
|
|
+ 'Skipping setup of unused database(s): %s.' % ', '.join(sorted(unused_databases)),
|
|
|
|
+ level=logging.DEBUG,
|
|
|
|
+ )
|
|
return databases
|
|
return databases
|
|
|
|
|
|
def run_tests(self, test_labels, extra_tests=None, **kwargs):
|
|
def run_tests(self, test_labels, extra_tests=None, **kwargs):
|