You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by be...@apache.org on 2023/12/01 21:20:39 UTC
(superset) branch master updated: fix(database-import): Support importing a DB connection with a version set (#26116)
This is an automated email from the ASF dual-hosted git repository.
beto pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new c033ca959d fix(database-import): Support importing a DB connection with a version set (#26116)
c033ca959d is described below
commit c033ca959d391cca8f0e5a34e563ca4297ce2848
Author: Vitor Avila <96...@users.noreply.github.com>
AuthorDate: Fri Dec 1 18:20:27 2023 -0300
fix(database-import): Support importing a DB connection with a version set (#26116)
---
superset/databases/schemas.py | 1 +
.../databases/commands/importers/v1/import_test.py | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/superset/databases/schemas.py b/superset/databases/schemas.py
index ac4d0e127d..b56c98c5d6 100644
--- a/superset/databases/schemas.py
+++ b/superset/databases/schemas.py
@@ -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):
diff --git a/tests/unit_tests/databases/commands/importers/v1/import_test.py b/tests/unit_tests/databases/commands/importers/v1/import_test.py
index dcd093a9cf..5fb4d12ce5 100644
--- a/tests/unit_tests/databases/commands/importers/v1/import_test.py
+++ b/tests/unit_tests/databases/commands/importers/v1/import_test.py
@@ -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"