mirror of https://github.com/django/django.git
Ensured that the test suite creates the default DB before any others.
Refs #14799. Technically this fixes the problem, but I'm far from convinced it's the perfect solution, so I'm leaving the ticket open. I'm committing this now because it's the minimum required to get the test suite running again, but this commit can -- and probably should -- be reverted in favor of a more holistic fix later on. git-svn-id: http://code.djangoproject.com/svn/django/trunk@14756 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
0714b0f390
commit
2fa22a4b64
|
@ -216,7 +216,7 @@ class DjangoTestSuiteRunner(object):
|
||||||
return reorder_suite(suite, (TestCase,))
|
return reorder_suite(suite, (TestCase,))
|
||||||
|
|
||||||
def setup_databases(self, **kwargs):
|
def setup_databases(self, **kwargs):
|
||||||
from django.db import connections
|
from django.db import connections, DEFAULT_DB_ALIAS
|
||||||
|
|
||||||
# First pass -- work out which databases actually need to be created,
|
# First pass -- work out which databases actually need to be created,
|
||||||
# and which ones are test mirrors or duplicate entries in DATABASES
|
# and which ones are test mirrors or duplicate entries in DATABASES
|
||||||
|
@ -239,10 +239,20 @@ class DjangoTestSuiteRunner(object):
|
||||||
connection.settings_dict['NAME'],
|
connection.settings_dict['NAME'],
|
||||||
), []).append(alias)
|
), []).append(alias)
|
||||||
|
|
||||||
# Second pass -- actually create the databases.
|
# Re-order the list of databases to create, making sure the default
|
||||||
|
# database is first. Otherwise, creation order is semi-random (i.e.
|
||||||
|
# dict ordering dependent).
|
||||||
|
dbs_to_create = []
|
||||||
|
for dbinfo, aliases in test_databases.items():
|
||||||
|
if DEFAULT_DB_ALIAS in aliases:
|
||||||
|
dbs_to_create.insert(0, (dbinfo, aliases))
|
||||||
|
else:
|
||||||
|
dbs_to_create.append((dbinfo, aliases))
|
||||||
|
|
||||||
|
# Final pass -- actually create the databases.
|
||||||
old_names = []
|
old_names = []
|
||||||
mirrors = []
|
mirrors = []
|
||||||
for (host, port, engine, db_name), aliases in test_databases.items():
|
for (host, port, engine, db_name), aliases in dbs_to_create:
|
||||||
# Actually create the database for the first connection
|
# Actually create the database for the first connection
|
||||||
connection = connections[aliases[0]]
|
connection = connections[aliases[0]]
|
||||||
old_names.append((connection, db_name, True))
|
old_names.append((connection, db_name, True))
|
||||||
|
|
Loading…
Reference in New Issue