diff options
| author | Florian Apolloner <florian@apolloner.eu> | 2022-03-17 07:31:47 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-03-17 07:36:34 +0100 |
| commit | 13378ad95206a96c3d1d261eb738032468a7acc1 (patch) | |
| tree | 0035e883cdc1b6d6059bd9c67f00b3b8dde76676 /django/db/utils.py | |
| parent | 58ad9a99a744b036fa69c4d03eca5618ea949f93 (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.py | 69 |
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) |
