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