mirror of
https://github.com/apache/superset.git
synced 2026-04-19 16:14:52 +00:00
feat: import external management columns (#19315)
* feat: import flags * Add tests
This commit is contained in:
@@ -16,6 +16,7 @@
|
||||
# under the License.
|
||||
# pylint: disable=import-outside-toplevel, unused-argument, unused-import, invalid-name
|
||||
|
||||
import copy
|
||||
import json
|
||||
import uuid
|
||||
from typing import Any, Dict
|
||||
@@ -199,6 +200,7 @@ def test_import_column_extra_is_string(app_context: None, session: Session) -> N
|
||||
"database_uuid": database.uuid,
|
||||
}
|
||||
|
||||
# the Marshmallow schema should convert strings to objects
|
||||
schema = ImportV1DatasetSchema()
|
||||
dataset_config = schema.load(yaml_config)
|
||||
dataset_config["database_id"] = database.id
|
||||
@@ -207,3 +209,31 @@ def test_import_column_extra_is_string(app_context: None, session: Session) -> N
|
||||
assert sqla_table.metrics[0].extra == '{"warning_markdown": null}'
|
||||
assert sqla_table.columns[0].extra == '{"certified_by": "User"}'
|
||||
assert sqla_table.extra == '{"warning_markdown": "*WARNING*"}'
|
||||
|
||||
|
||||
def test_import_dataset_managed_externally(app_context: None, session: Session) -> None:
|
||||
"""
|
||||
Test importing a dataset that is managed externally.
|
||||
"""
|
||||
from superset.connectors.sqla.models import SqlaTable, SqlMetric, TableColumn
|
||||
from superset.datasets.commands.importers.v1.utils import import_dataset
|
||||
from superset.datasets.schemas import ImportV1DatasetSchema
|
||||
from superset.models.core import Database
|
||||
from tests.integration_tests.fixtures.importexport import dataset_config
|
||||
|
||||
engine = session.get_bind()
|
||||
SqlaTable.metadata.create_all(engine) # pylint: disable=no-member
|
||||
|
||||
database = Database(database_name="my_database", sqlalchemy_uri="sqlite://")
|
||||
session.add(database)
|
||||
session.flush()
|
||||
|
||||
dataset_uuid = uuid.uuid4()
|
||||
config = copy.deepcopy(dataset_config)
|
||||
config["is_managed_externally"] = True
|
||||
config["external_url"] = "https://example.org/my_table"
|
||||
config["database_id"] = database.id
|
||||
|
||||
sqla_table = import_dataset(session, config)
|
||||
assert sqla_table.is_managed_externally is True
|
||||
assert sqla_table.external_url == "https://example.org/my_table"
|
||||
|
||||
Reference in New Issue
Block a user