summaryrefslogtreecommitdiff
path: root/django/db/utils.py
diff options
context:
space:
mode:
authorFlorian Apolloner <florian@apolloner.eu>2022-03-17 07:31:47 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-03-17 07:36:34 +0100
commit13378ad95206a96c3d1d261eb738032468a7acc1 (patch)
tree0035e883cdc1b6d6059bd9c67f00b3b8dde76676 /django/db/utils.py
parent58ad9a99a744b036fa69c4d03eca5618ea949f93 (diff)
Moved ensure_defaults() and prepare_test_settings() logic to ConnectionHandler.configure_settings().
Diffstat (limited to 'django/db/utils.py')
-rw-r--r--django/db/utils.py69
1 files changed, 25 insertions, 44 deletions
diff --git a/django/db/utils.py b/django/db/utils.py
index 5459fc9a33..485d908fb9 100644
--- a/django/db/utils.py
+++ b/django/db/utils.py
@@ -154,57 +154,38 @@ class ConnectionHandler(BaseConnectionHandler):
)
elif databases[DEFAULT_DB_ALIAS] == {}:
databases[DEFAULT_DB_ALIAS]["ENGINE"] = "django.db.backends.dummy"
+
+ # Configure default settings.
+ for conn in databases.values():
+ conn.setdefault("ATOMIC_REQUESTS", False)
+ conn.setdefault("AUTOCOMMIT", True)
+ conn.setdefault("ENGINE", "django.db.backends.dummy")
+ if conn["ENGINE"] == "django.db.backends." or not conn["ENGINE"]:
+ conn["ENGINE"] = "django.db.backends.dummy"
+ conn.setdefault("CONN_MAX_AGE", 0)
+ conn.setdefault("CONN_HEALTH_CHECKS", False)
+ conn.setdefault("OPTIONS", {})
+ conn.setdefault("TIME_ZONE", None)
+ for setting in ["NAME", "USER", "PASSWORD", "HOST", "PORT"]:
+ conn.setdefault(setting, "")
+
+ test_settings = conn.setdefault("TEST", {})
+ default_test_settings = [
+ ("CHARSET", None),
+ ("COLLATION", None),
+ ("MIGRATE", True),
+ ("MIRROR", None),
+ ("NAME", None),
+ ]
+ for key, value in default_test_settings:
+ test_settings.setdefault(key, value)
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.")
-
- conn.setdefault("ATOMIC_REQUESTS", False)
- conn.setdefault("AUTOCOMMIT", True)
- conn.setdefault("ENGINE", "django.db.backends.dummy")
- if conn["ENGINE"] == "django.db.backends." or not conn["ENGINE"]:
- conn["ENGINE"] = "django.db.backends.dummy"
- conn.setdefault("CONN_MAX_AGE", 0)
- conn.setdefault("CONN_HEALTH_CHECKS", False)
- conn.setdefault("OPTIONS", {})
- conn.setdefault("TIME_ZONE", None)
- 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),
- ("COLLATION", None),
- ("MIGRATE", True),
- ("MIRROR", None),
- ("NAME", None),
- ]
- for key, value in default_test_settings:
- test_settings.setdefault(key, value)
-
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)