fix(database-import): Support importing a DB connection with a version set (#26116)

This commit is contained in:
Vitor Avila 2023-12-01 18:20:27 -03:00 committed by GitHub
parent 1b9e4ff9ab
commit c033ca959d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View File

@ -750,6 +750,7 @@ class ImportV1DatabaseExtraSchema(Schema):
allows_virtual_table_explore = fields.Boolean(required=False)
cancel_query_on_windows_unload = fields.Boolean(required=False)
disable_data_preview = fields.Boolean(required=False)
version = fields.String(required=False, allow_none=True)
class ImportV1DatabaseSchema(Schema):

View File

@ -17,6 +17,7 @@
# pylint: disable=unused-argument, import-outside-toplevel, invalid-name
import copy
import json
import pytest
from pytest_mock import MockFixture
@ -142,3 +143,23 @@ def test_import_database_without_permission(
str(excinfo.value)
== "Database doesn't exist and user doesn't have permission to create databases"
)
def test_import_database_with_version(mocker: MockFixture, session: Session) -> None:
"""
Test importing a database with a version set.
"""
from superset import security_manager
from superset.commands.database.importers.v1.utils import import_database
from superset.models.core import Database
from tests.integration_tests.fixtures.importexport import database_config
mocker.patch.object(security_manager, "can_access", return_value=True)
engine = session.get_bind()
Database.metadata.create_all(engine) # pylint: disable=no-member
config = copy.deepcopy(database_config)
config["extra"]["version"] = "1.1.1"
database = import_database(session, config)
assert json.loads(database.extra)["version"] == "1.1.1"