From 3a81e6aee8a081dd2c422e451733781d92cf11f4 Mon Sep 17 00:00:00 2001 From: "Hugh A. Miles II" Date: Thu, 13 May 2021 15:05:37 -0400 Subject: [PATCH] change name to Basic instead of Base (#14625) --- superset/databases/api.py | 4 ++-- superset/databases/commands/validate.py | 6 +++--- superset/databases/schemas.py | 4 ++-- superset/db_engine_specs/base.py | 16 +++++++++------- superset/db_engine_specs/postgres.py | 4 ++-- tests/databases/schema_tests.py | 4 ++-- tests/db_engine_specs/base_engine_spec_tests.py | 10 +++++----- 7 files changed, 25 insertions(+), 23 deletions(-) diff --git a/superset/databases/api.py b/superset/databases/api.py index 370e513e2..5b795a879 100644 --- a/superset/databases/api.py +++ b/superset/databases/api.py @@ -66,7 +66,7 @@ from superset.databases.schemas import ( ) from superset.databases.utils import get_table_metadata from superset.db_engine_specs import get_available_engine_specs -from superset.db_engine_specs.base import BaseParametersMixin +from superset.db_engine_specs.base import BasicParametersMixin from superset.exceptions import InvalidPayloadFormatError, InvalidPayloadSchemaError from superset.extensions import security_manager from superset.models.core import Database @@ -904,7 +904,7 @@ class DatabaseRestApi(BaseSupersetModelRestApi): "preferred": engine_spec.engine in preferred_databases, } - if issubclass(engine_spec, BaseParametersMixin): + if issubclass(engine_spec, BasicParametersMixin): payload["parameters"] = engine_spec.parameters_json_schema() payload[ "sqlalchemy_uri_placeholder" diff --git a/superset/databases/commands/validate.py b/superset/databases/commands/validate.py index b6aa974cd..e0621020a 100644 --- a/superset/databases/commands/validate.py +++ b/superset/databases/commands/validate.py @@ -30,7 +30,7 @@ from superset.databases.commands.exceptions import ( ) from superset.databases.dao import DatabaseDAO from superset.db_engine_specs import get_engine_specs -from superset.db_engine_specs.base import BaseParametersMixin +from superset.db_engine_specs.base import BasicParametersMixin from superset.errors import ErrorLevel, SupersetError, SupersetErrorType from superset.models.core import Database @@ -56,7 +56,7 @@ class ValidateDatabaseParametersCommand(BaseCommand): ), ) engine_spec = engine_specs[engine] - if not issubclass(engine_spec, BaseParametersMixin): + if not issubclass(engine_spec, BasicParametersMixin): raise InvalidEngineError( SupersetError( message=__( @@ -69,7 +69,7 @@ class ValidateDatabaseParametersCommand(BaseCommand): "allowed": [ name for name, engine_spec in engine_specs.items() - if issubclass(engine_spec, BaseParametersMixin) + if issubclass(engine_spec, BasicParametersMixin) ], "provided": engine, }, diff --git a/superset/databases/schemas.py b/superset/databases/schemas.py index ffe4a8a04..13fdc4309 100644 --- a/superset/databases/schemas.py +++ b/superset/databases/schemas.py @@ -28,7 +28,7 @@ from sqlalchemy.engine.url import make_url from sqlalchemy.exc import ArgumentError from superset.db_engine_specs import get_engine_specs -from superset.db_engine_specs.base import BaseParametersMixin +from superset.db_engine_specs.base import BasicParametersMixin from superset.exceptions import CertificateException, SupersetSecurityException from superset.models.core import PASSWORD_MASK from superset.security.analytics_db_safety import check_sqlalchemy_uri @@ -259,7 +259,7 @@ class DatabaseParametersSchemaMixin: [_('Engine "%(engine)s" is not a valid engine.', engine=engine,)] ) engine_spec = engine_specs[engine] - if not issubclass(engine_spec, BaseParametersMixin): + if not issubclass(engine_spec, BasicParametersMixin): raise ValidationError( [ _( diff --git a/superset/db_engine_specs/base.py b/superset/db_engine_specs/base.py index 03e73eea5..2fa9033c7 100644 --- a/superset/db_engine_specs/base.py +++ b/superset/db_engine_specs/base.py @@ -1294,7 +1294,7 @@ class BaseEngineSpec: # pylint: disable=too-many-public-methods # schema for adding a database by providing parameters instead of the # full SQLAlchemy URI -class BaseParametersSchema(Schema): +class BasicParametersSchema(Schema): username = fields.String(required=True, allow_none=True, description=__("Username")) password = fields.String(allow_none=True, description=__("Password")) host = fields.String(required=True, description=__("Hostname or IP address")) @@ -1305,7 +1305,7 @@ class BaseParametersSchema(Schema): ) -class BaseParametersType(TypedDict, total=False): +class BasicParametersType(TypedDict, total=False): username: Optional[str] password: Optional[str] host: str @@ -1314,7 +1314,7 @@ class BaseParametersType(TypedDict, total=False): query: Dict[str, Any] -class BaseParametersMixin: +class BasicParametersMixin: """ Mixin for configuring DB engine specs via a dictionary. @@ -1328,7 +1328,7 @@ class BaseParametersMixin: """ # schema describing the parameters used to configure the DB - parameters_schema = BaseParametersSchema() + parameters_schema = BasicParametersSchema() # recommended driver name for the DB engine spec drivername = "" @@ -1339,7 +1339,7 @@ class BaseParametersMixin: ) @classmethod - def build_sqlalchemy_uri(cls, parameters: BaseParametersType) -> str: + def build_sqlalchemy_uri(cls, parameters: BasicParametersType) -> str: return str( URL( cls.drivername, @@ -1353,7 +1353,7 @@ class BaseParametersMixin: ) @staticmethod - def get_parameters_from_uri(uri: str) -> BaseParametersType: + def get_parameters_from_uri(uri: str) -> BasicParametersType: url = make_url(uri) return { "username": url.username, @@ -1365,7 +1365,9 @@ class BaseParametersMixin: } @classmethod - def validate_parameters(cls, parameters: BaseParametersType) -> List[SupersetError]: + def validate_parameters( + cls, parameters: BasicParametersType + ) -> List[SupersetError]: """ Validates any number of parameters, for progressive validation. diff --git a/superset/db_engine_specs/postgres.py b/superset/db_engine_specs/postgres.py index 8caba10b7..b00a27a27 100644 --- a/superset/db_engine_specs/postgres.py +++ b/superset/db_engine_specs/postgres.py @@ -37,7 +37,7 @@ from sqlalchemy.dialects.postgresql import ARRAY, DOUBLE_PRECISION, ENUM, JSON from sqlalchemy.dialects.postgresql.base import PGInspector from sqlalchemy.types import String, TypeEngine -from superset.db_engine_specs.base import BaseEngineSpec, BaseParametersMixin +from superset.db_engine_specs.base import BaseEngineSpec, BasicParametersMixin from superset.errors import SupersetErrorType from superset.exceptions import SupersetException from superset.utils import core as utils @@ -155,7 +155,7 @@ class PostgresBaseEngineSpec(BaseEngineSpec): return "(timestamp 'epoch' + {col} * interval '1 second')" -class PostgresEngineSpec(PostgresBaseEngineSpec, BaseParametersMixin): +class PostgresEngineSpec(PostgresBaseEngineSpec, BasicParametersMixin): engine = "postgresql" engine_aliases = {"postgres"} diff --git a/tests/databases/schema_tests.py b/tests/databases/schema_tests.py index 6d173cc51..6e10e2178 100644 --- a/tests/databases/schema_tests.py +++ b/tests/databases/schema_tests.py @@ -20,14 +20,14 @@ from unittest import mock from marshmallow import fields, Schema, ValidationError from superset.databases.schemas import DatabaseParametersSchemaMixin -from superset.db_engine_specs.base import BaseParametersMixin +from superset.db_engine_specs.base import BasicParametersMixin class DummySchema(Schema, DatabaseParametersSchemaMixin): sqlalchemy_uri = fields.String() -class DummyEngine(BaseParametersMixin): +class DummyEngine(BasicParametersMixin): drivername = "dummy" diff --git a/tests/db_engine_specs/base_engine_spec_tests.py b/tests/db_engine_specs/base_engine_spec_tests.py index 164b3bbd3..b937eeada 100644 --- a/tests/db_engine_specs/base_engine_spec_tests.py +++ b/tests/db_engine_specs/base_engine_spec_tests.py @@ -22,7 +22,7 @@ import pytest from superset.db_engine_specs import get_engine_specs from superset.db_engine_specs.base import ( BaseEngineSpec, - BaseParametersMixin, + BasicParametersMixin, builtin_time_grains, LimitMethod, ) @@ -383,7 +383,7 @@ def test_validate(is_port_open, is_hostname_valid): "database": "dbname", "query": {"sslmode": "verify-full"}, } - errors = BaseParametersMixin.validate_parameters(parameters) + errors = BasicParametersMixin.validate_parameters(parameters) assert errors == [] @@ -396,7 +396,7 @@ def test_validate_parameters_missing(): "database": "", "query": {}, } - errors = BaseParametersMixin.validate_parameters(parameters) + errors = BasicParametersMixin.validate_parameters(parameters) assert errors == [ SupersetError( message=( @@ -421,7 +421,7 @@ def test_validate_parameters_invalid_host(is_hostname_valid): "database": "dbname", "query": {"sslmode": "verify-full"}, } - errors = BaseParametersMixin.validate_parameters(parameters) + errors = BasicParametersMixin.validate_parameters(parameters) assert errors == [ SupersetError( message="One or more parameters are missing: port", @@ -452,7 +452,7 @@ def test_validate_parameters_port_closed(is_port_open, is_hostname_valid): "database": "dbname", "query": {"sslmode": "verify-full"}, } - errors = BaseParametersMixin.validate_parameters(parameters) + errors = BasicParametersMixin.validate_parameters(parameters) assert errors == [ SupersetError( message="The port is closed.",