summaryrefslogtreecommitdiff
path: root/django/test/runner.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/test/runner.py')
-rw-r--r--django/test/runner.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/django/test/runner.py b/django/test/runner.py
index e14c6381eb..ff646b7692 100644
--- a/django/test/runner.py
+++ b/django/test/runner.py
@@ -682,14 +682,18 @@ class DiscoverRunner:
return len(result.failures) + len(result.errors)
def _get_databases(self, suite):
- databases = set()
+ databases = {}
for test in suite:
if isinstance(test, unittest.TestCase):
test_databases = getattr(test, 'databases', None)
if test_databases == '__all__':
- return set(connections)
+ test_databases = connections
if test_databases:
- databases.update(test_databases)
+ serialized_rollback = getattr(test, 'serialized_rollback', False)
+ databases.update(
+ (alias, serialized_rollback or databases.get(alias, False))
+ for alias in test_databases
+ )
else:
databases.update(self._get_databases(test))
return databases
@@ -717,8 +721,15 @@ class DiscoverRunner:
self.setup_test_environment()
suite = self.build_suite(test_labels, extra_tests)
databases = self.get_databases(suite)
+ serialized_aliases = set(
+ alias
+ for alias, serialize in databases.items() if serialize
+ )
with self.time_keeper.timed('Total database setup'):
- old_config = self.setup_databases(aliases=databases)
+ old_config = self.setup_databases(
+ aliases=databases,
+ serialized_aliases=serialized_aliases,
+ )
run_failed = False
try:
self.run_checks(databases)