Moved ensure_defaults() and prepare_test_settings() logic to ConnectionHandler.configure_settings().
This commit is contained in:
parent
58ad9a99a7
commit
13378ad952
|
@ -154,22 +154,9 @@ class ConnectionHandler(BaseConnectionHandler):
|
|||
)
|
||||
elif databases[DEFAULT_DB_ALIAS] == {}:
|
||||
databases[DEFAULT_DB_ALIAS]["ENGINE"] = "django.db.backends.dummy"
|
||||
return databases
|
||||
|
||||
@property
|
||||
def databases(self):
|
||||
return self.settings
|
||||
|
||||
def ensure_defaults(self, alias):
|
||||
"""
|
||||
Put the defaults into the settings dictionary for a given connection
|
||||
where no settings is provided.
|
||||
"""
|
||||
try:
|
||||
conn = self.settings[alias]
|
||||
except KeyError:
|
||||
raise self.exception_class(f"The connection '{alias}' doesn't exist.")
|
||||
|
||||
# Configure default settings.
|
||||
for conn in databases.values():
|
||||
conn.setdefault("ATOMIC_REQUESTS", False)
|
||||
conn.setdefault("AUTOCOMMIT", True)
|
||||
conn.setdefault("ENGINE", "django.db.backends.dummy")
|
||||
|
@ -182,15 +169,6 @@ class ConnectionHandler(BaseConnectionHandler):
|
|||
for setting in ["NAME", "USER", "PASSWORD", "HOST", "PORT"]:
|
||||
conn.setdefault(setting, "")
|
||||
|
||||
def prepare_test_settings(self, alias):
|
||||
"""
|
||||
Make sure the test settings are available in the 'TEST' sub-dictionary.
|
||||
"""
|
||||
try:
|
||||
conn = self.settings[alias]
|
||||
except KeyError:
|
||||
raise self.exception_class(f"The connection '{alias}' doesn't exist.")
|
||||
|
||||
test_settings = conn.setdefault("TEST", {})
|
||||
default_test_settings = [
|
||||
("CHARSET", None),
|
||||
|
@ -201,10 +179,13 @@ class ConnectionHandler(BaseConnectionHandler):
|
|||
]
|
||||
for key, value in default_test_settings:
|
||||
test_settings.setdefault(key, value)
|
||||
return databases
|
||||
|
||||
@property
|
||||
def databases(self):
|
||||
return self.settings
|
||||
|
||||
def create_connection(self, alias):
|
||||
self.ensure_defaults(alias)
|
||||
self.prepare_test_settings(alias)
|
||||
db = self.settings[alias]
|
||||
backend = load_backend(db["ENGINE"])
|
||||
return backend.DatabaseWrapper(db, alias)
|
||||
|
|
|
@ -50,26 +50,6 @@ class ConnectionHandlerTests(SimpleTestCase):
|
|||
with self.assertRaisesMessage(ConnectionDoesNotExist, msg):
|
||||
conns["nonexistent"]
|
||||
|
||||
def test_ensure_defaults_nonexistent_alias(self):
|
||||
msg = "The connection 'nonexistent' doesn't exist."
|
||||
conns = ConnectionHandler(
|
||||
{
|
||||
DEFAULT_DB_ALIAS: {"ENGINE": "django.db.backends.dummy"},
|
||||
}
|
||||
)
|
||||
with self.assertRaisesMessage(ConnectionDoesNotExist, msg):
|
||||
conns.ensure_defaults("nonexistent")
|
||||
|
||||
def test_prepare_test_settings_nonexistent_alias(self):
|
||||
msg = "The connection 'nonexistent' doesn't exist."
|
||||
conns = ConnectionHandler(
|
||||
{
|
||||
DEFAULT_DB_ALIAS: {"ENGINE": "django.db.backends.dummy"},
|
||||
}
|
||||
)
|
||||
with self.assertRaisesMessage(ConnectionDoesNotExist, msg):
|
||||
conns.prepare_test_settings("nonexistent")
|
||||
|
||||
|
||||
class DatabaseErrorWrapperTests(TestCase):
|
||||
@unittest.skipUnless(connection.vendor == "postgresql", "PostgreSQL test")
|
||||
|
|
Loading…
Reference in New Issue