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"