Fixed #19940 -- Made test.runner.setup_databases properly handle aliases for default db.
Thanks simonpercivall.
This commit is contained in:
parent
da5069f68f
commit
2cbd579efe
|
@ -238,6 +238,7 @@ def setup_databases(verbosity, interactive, **kwargs):
|
|||
mirrored_aliases = {}
|
||||
test_databases = {}
|
||||
dependencies = {}
|
||||
default_sig = connections[DEFAULT_DB_ALIAS].creation.test_db_signature()
|
||||
for alias in connections:
|
||||
connection = connections[alias]
|
||||
if connection.settings_dict['TEST_MIRROR']:
|
||||
|
@ -259,7 +260,7 @@ def setup_databases(verbosity, interactive, **kwargs):
|
|||
dependencies[alias] = (
|
||||
connection.settings_dict['TEST_DEPENDENCIES'])
|
||||
else:
|
||||
if alias != DEFAULT_DB_ALIAS:
|
||||
if alias != DEFAULT_DB_ALIAS and connection.creation.test_db_signature() != default_sig:
|
||||
dependencies[alias] = connection.settings_dict.get(
|
||||
'TEST_DEPENDENCIES', [DEFAULT_DB_ALIAS])
|
||||
|
||||
|
|
|
@ -291,6 +291,31 @@ class DummyBackendTest(unittest.TestCase):
|
|||
db.connections = old_db_connections
|
||||
|
||||
|
||||
class AliasedDefaultTestSetupTest(unittest.TestCase):
|
||||
def test_setup_aliased_default_database(self):
|
||||
"""
|
||||
Test that setup_datebases() doesn't fail when 'default' is aliased
|
||||
"""
|
||||
runner_instance = runner.DiscoverRunner(verbosity=0)
|
||||
old_db_connections = db.connections
|
||||
try:
|
||||
db.connections = db.ConnectionHandler({
|
||||
'default': {
|
||||
'NAME': 'dummy'
|
||||
},
|
||||
'aliased': {
|
||||
'NAME': 'dummy'
|
||||
}
|
||||
})
|
||||
old_config = runner_instance.setup_databases()
|
||||
runner_instance.teardown_databases(old_config)
|
||||
except Exception as e:
|
||||
self.fail("setup_databases/teardown_databases unexpectedly raised "
|
||||
"an error: %s" % e)
|
||||
finally:
|
||||
db.connections = old_db_connections
|
||||
|
||||
|
||||
class DeprecationDisplayTest(AdminScriptTestCase):
|
||||
# tests for 19546
|
||||
def setUp(self):
|
||||
|
|
Loading…
Reference in New Issue