change name to Basic instead of Base (#14625)

This commit is contained in:
Hugh A. Miles II 2021-05-13 15:05:37 -04:00 committed by GitHub
parent 1e601483e3
commit 3a81e6aee8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 25 additions and 23 deletions

View File

@ -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"

View File

@ -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,
},

View File

@ -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(
[
_(

View File

@ -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.

View File

@ -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"}

View File

@ -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"

View File

@ -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.",