DatabaseClient: add missing class methods and reflect Django 3.2 refactor (#846)

* DatabaseClient: add missing class method `settings_to_cmd_args_env` and add missing arg to `runshell`

The `DatabaseClient.runshell()` was refactored in Django 3.2 to be more standardized
across the different database backends.

* DatabaseClient: make `settings_dict` dict type better by specifying key/value types

* tests: add missing db backend client files to `import_all_modules`
This commit is contained in:
Kevin Marsh
2022-02-09 22:29:44 -08:00
committed by GitHub
parent 01a31d2fd5
commit 3eab36a5c4
7 changed files with 27 additions and 12 deletions

View File

@@ -1,4 +1,4 @@
from typing import Any
from typing import Any, Iterable
from django.db.backends.base.base import BaseDatabaseWrapper
@@ -6,4 +6,4 @@ class BaseDatabaseClient:
executable_name: Any = ...
connection: BaseDatabaseWrapper
def __init__(self, connection: BaseDatabaseWrapper) -> None: ...
def runshell(self) -> None: ...
def runshell(self, parameters: Iterable[str]) -> None: ...

View File

@@ -12,8 +12,7 @@ def ignore(*args: Any, **kwargs: Any) -> None: ...
class DatabaseOperations(BaseDatabaseOperations):
quote_name: Any = ...
class DatabaseClient(BaseDatabaseClient):
runshell: Any = ...
class DatabaseClient(BaseDatabaseClient): ...
class DatabaseCreation(BaseDatabaseCreation):
create_test_db: Any = ...

View File

@@ -1,11 +1,10 @@
from typing import Dict, List, Optional, Union
from typing import Any, Dict, Iterable, List, Optional, Tuple, Union
from django.db.backends.base.client import BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name: str = ...
@classmethod
def settings_to_cmd_args(
cls, settings_dict: Dict[str, Optional[Union[Dict[str, Dict[str, str]], int, str]]]
) -> List[str]: ...
def runshell(self) -> None: ...
def settings_to_cmd_args_env(
self, settings_dict: Dict[str, Any], parameters: Iterable[str]
) -> Tuple[List[str], Optional[Dict[str, str]]]: ...

View File

@@ -1,5 +1,13 @@
from typing import Any, Dict, Iterable, List, Tuple
from django.db.backends.base.client import BaseDatabaseClient as BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name: str = ...
wrapper_name: str = ...
@staticmethod
def connect_string(settings_dict: Dict[str, Any]) -> str: ...
@classmethod
def settings_to_cmd_args_env(
self, settings_dict: Dict[str, Any], parameters: Iterable[str]
) -> Tuple[List[str], None]: ...

View File

@@ -1,9 +1,10 @@
from typing import Dict
from typing import Any, Dict, Iterable, List, Optional, Tuple
from django.db.backends.base.client import BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name: str = ...
@classmethod
def runshell_db(cls, conn_params: Dict[str, str]) -> None: ...
def runshell(self) -> None: ...
def settings_to_cmd_args_env(
self, settings_dict: Dict[str, Any], parameters: Iterable[str]
) -> Tuple[List[str], Optional[Dict[str, str]]]: ...

View File

@@ -1,4 +1,10 @@
from typing import Any, Dict, Iterable, List, Tuple
from django.db.backends.base.client import BaseDatabaseClient as BaseDatabaseClient
class DatabaseClient(BaseDatabaseClient):
executable_name: str = ...
@classmethod
def settings_to_cmd_args_env(
self, settings_dict: Dict[str, Any], parameters: Iterable[str]
) -> Tuple[List[str], None]: ...

View File

@@ -231,6 +231,7 @@
import django.db.backends.dummy.base
import django.db.backends.mysql
import django.db.backends.mysql.client
import django.db.backends.oracle.client
import django.db.backends.postgresql
import django.db.backends.postgresql.base
import django.db.backends.postgresql.client
@@ -239,6 +240,7 @@
import django.db.backends.signals
import django.db.backends.sqlite3
import django.db.backends.sqlite3.base
import django.db.backends.sqlite3.client
import django.db.backends.sqlite3.creation
import django.db.backends.sqlite3.features
import django.db.backends.sqlite3.introspection