From 0501ad25e8437757b0ac611026734f2460796e1b Mon Sep 17 00:00:00 2001 From: Phillip Kelley-Dotson Date: Wed, 25 May 2022 14:23:25 -0700 Subject: [PATCH] fix: always create parameter json field (#19899) * fix: always create parameter json field * ensure validation for empty catalog * check engine instead of name * put validation in be * fix test * fix test * remove test --- superset/db_engine_specs/gsheets.py | 8 ++++++++ tests/unit_tests/db_engine_specs/test_gsheets.py | 9 ++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/superset/db_engine_specs/gsheets.py b/superset/db_engine_specs/gsheets.py index ba13389e26..740c1bc33d 100644 --- a/superset/db_engine_specs/gsheets.py +++ b/superset/db_engine_specs/gsheets.py @@ -171,6 +171,14 @@ class GSheetsEngineSpec(SqliteEngineSpec): if not table_catalog: # Allowing users to submit empty catalogs + errors.append( + SupersetError( + message="Sheet name is required", + error_type=SupersetErrorType.CONNECTION_MISSING_PARAMETERS_ERROR, + level=ErrorLevel.WARNING, + extra={"catalog": {"idx": 0, "name": True}}, + ), + ) return errors # We need a subject in case domain wide delegation is set, otherwise the diff --git a/tests/unit_tests/db_engine_specs/test_gsheets.py b/tests/unit_tests/db_engine_specs/test_gsheets.py index b050c6fdbf..c2e8346c3c 100644 --- a/tests/unit_tests/db_engine_specs/test_gsheets.py +++ b/tests/unit_tests/db_engine_specs/test_gsheets.py @@ -40,7 +40,14 @@ def test_validate_parameters_simple( "catalog": {}, } errors = GSheetsEngineSpec.validate_parameters(parameters) - assert errors == [] + assert errors == [ + SupersetError( + message="Sheet name is required", + error_type=SupersetErrorType.CONNECTION_MISSING_PARAMETERS_ERROR, + level=ErrorLevel.WARNING, + extra={"catalog": {"idx": 0, "name": True}}, + ), + ] def test_validate_parameters_catalog(