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/08/09 02:39:58 UTC

[superset] 01/02: Fix tests

This is an automated email from the ASF dual-hosted git repository.

beto pushed a commit to branch upload_gsheets
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 622aff25b115338e838e6e7ba257695c4b9d0d0b
Author: Beto Dealmeida <ro...@dealmeida.net>
AuthorDate: Tue Aug 8 19:06:19 2023 -0700

    Fix tests
---
 superset/db_engine_specs/gsheets.py              | 18 +++++++++++-------
 tests/unit_tests/db_engine_specs/test_gsheets.py |  4 ++--
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/superset/db_engine_specs/gsheets.py b/superset/db_engine_specs/gsheets.py
index b75742254a..59d9a6bcf8 100644
--- a/superset/db_engine_specs/gsheets.py
+++ b/superset/db_engine_specs/gsheets.py
@@ -31,7 +31,6 @@ from flask_babel import gettext as __
 from marshmallow import fields, Schema
 from marshmallow.exceptions import ValidationError
 from requests import Session
-from shillelagh.backends.apsw.dialects.base import get_adapter_for_table_name
 from sqlalchemy.engine import create_engine
 from sqlalchemy.engine.url import URL
 from typing_extensions import TypedDict
@@ -49,7 +48,10 @@ if TYPE_CHECKING:
 
 _logger = logging.getLogger()
 
-EXAMPLE_GSHEETS_URL = "https://docs.google.com/spreadsheets/d/1LcWZMsdCl92g7nA-D6qGRqg1T5TiHyuKJUY1u9XAnsk/edit#gid=0"
+EXAMPLE_GSHEETS_URL = (
+    "https://docs.google.com/spreadsheets/d/"
+    "1LcWZMsdCl92g7nA-D6qGRqg1T5TiHyuKJUY1u9XAnsk/edit#gid=0"
+)
 
 SYNTAX_ERROR_REGEX = re.compile('SQLError: near "(?P<server_error>.*?)": syntax error')
 
@@ -138,8 +140,8 @@ class GSheetsEngineSpec(ShillelaghEngineSpec):
     def build_sqlalchemy_uri(
         cls,
         _: GSheetsParametersType,
-        encrypted_extra: None
-        | (dict[str, Any]) = None,  # pylint: disable=unused-argument
+        encrypted_extra: None  # pylint: disable=unused-argument
+        | (dict[str, Any]) = None,
     ) -> str:
         return "gsheets://"
 
@@ -338,7 +340,7 @@ class GSheetsEngineSpec(ShillelaghEngineSpec):
         return payload
 
     @classmethod
-    def df_to_sql(
+    def df_to_sql(  # pylint: disable=too-many-locals
         cls,
         database: Database,
         table: Table,
@@ -358,6 +360,8 @@ class GSheetsEngineSpec(ShillelaghEngineSpec):
         cells in the existing sheet before uploading the new data. Appending to an
         existing table is not supported because we can't ensure that the schemas match.
         """
+        from shillelagh.backends.apsw.dialects.base import get_adapter_for_table_name
+
         # grab the existing catalog, if any
         extra = database.get_extra()
         engine_params = extra.setdefault("engine_params", {})
@@ -387,8 +391,8 @@ class GSheetsEngineSpec(ShillelaghEngineSpec):
 
         # clear existing sheet, or create a new one
         if spreadsheet_url:
-            spreadsheet_id = adapter._spreadsheet_id
-            range_ = adapter._sheet_name
+            spreadsheet_id = adapter._spreadsheet_id  # pylint: disable=protected-access
+            range_ = adapter._sheet_name  # pylint: disable=protected-access
             url = (
                 "https://sheets.googleapis.com/v4/spreadsheets/"
                 f"{spreadsheet_id}/values/{range_}:clear"
diff --git a/tests/unit_tests/db_engine_specs/test_gsheets.py b/tests/unit_tests/db_engine_specs/test_gsheets.py
index 6f580f2674..7d7348c1a3 100644
--- a/tests/unit_tests/db_engine_specs/test_gsheets.py
+++ b/tests/unit_tests/db_engine_specs/test_gsheets.py
@@ -321,7 +321,7 @@ def test_upload_new(mocker: MockFixture) -> None:
 
     mocker.patch("superset.db_engine_specs.gsheets.db")
     get_adapter_for_table_name = mocker.patch(
-        "superset.db_engine_specs.gsheets.get_adapter_for_table_name"
+        "shillelagh.backends.apsw.dialects.base.get_adapter_for_table_name"
     )
     session = get_adapter_for_table_name()._get_session()
     session.post().json.return_value = {
@@ -350,7 +350,7 @@ def test_upload_existing(mocker: MockFixture) -> None:
 
     mocker.patch("superset.db_engine_specs.gsheets.db")
     get_adapter_for_table_name = mocker.patch(
-        "superset.db_engine_specs.gsheets.get_adapter_for_table_name"
+        "shillelagh.backends.apsw.dialects.base.get_adapter_for_table_name"
     )
     adapter = get_adapter_for_table_name()
     adapter._spreadsheet_id = 1