You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by dp...@apache.org on 2023/02/21 15:34:35 UTC
[superset] branch master updated: fix: gamma sql_json test (#23135)
This is an automated email from the ASF dual-hosted git repository.
dpgaspar 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 8f8fba2056 fix: gamma sql_json test (#23135)
8f8fba2056 is described below
commit 8f8fba2056add562bdcda7ed30d667c79de9c178
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Tue Feb 21 15:34:25 2023 +0000
fix: gamma sql_json test (#23135)
---
tests/integration_tests/fixtures/users.py | 49 +++++++++++++++++++++++++++++++
tests/integration_tests/sqllab_tests.py | 8 ++++-
2 files changed, 56 insertions(+), 1 deletion(-)
diff --git a/tests/integration_tests/fixtures/users.py b/tests/integration_tests/fixtures/users.py
new file mode 100644
index 0000000000..b812de4448
--- /dev/null
+++ b/tests/integration_tests/fixtures/users.py
@@ -0,0 +1,49 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+import pytest
+from flask_appbuilder.security.sqla.models import Role, User
+
+from superset import db, security_manager
+from tests.integration_tests.test_app import app
+
+
+@pytest.fixture()
+def create_gamma_sqllab_no_data():
+
+ with app.app_context():
+ gamma_role = db.session.query(Role).filter(Role.name == "Gamma").one_or_none()
+ sqllab_role = (
+ db.session.query(Role).filter(Role.name == "sql_lab").one_or_none()
+ )
+
+ security_manager.add_user(
+ "gamma_sqllab_no_data",
+ "gamma_sqllab_no_data",
+ "gamma_sqllab_no_data",
+ "gamma_sqllab_no_data@apache.org",
+ [gamma_role, sqllab_role],
+ password="general",
+ )
+
+ yield
+ user = (
+ db.session.query(User)
+ .filter(User.username == "gamma_sqllab_no_data")
+ .one_or_none()
+ )
+ db.session.delete(user)
+ db.session.commit()
diff --git a/tests/integration_tests/sqllab_tests.py b/tests/integration_tests/sqllab_tests.py
index aa15308e92..d9f26239d1 100644
--- a/tests/integration_tests/sqllab_tests.py
+++ b/tests/integration_tests/sqllab_tests.py
@@ -56,6 +56,7 @@ from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
load_birth_names_data,
)
+from tests.integration_tests.fixtures.users import create_gamma_sqllab_no_data
QUERY_1 = "SELECT * FROM birth_names LIMIT 1"
QUERY_2 = "SELECT * FROM NO_TABLE"
@@ -752,6 +753,7 @@ class TestSqlLab(SupersetTestCase):
)
assert data["status"] == "success"
+ @pytest.mark.usefixtures("create_gamma_sqllab_no_data")
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
@mock.patch.dict(
"superset.extensions.feature_flag_manager._feature_flags",
@@ -759,13 +761,17 @@ class TestSqlLab(SupersetTestCase):
clear=True,
)
def test_sql_json_parameter_forbidden(self):
- self.login("gamma")
+ self.login("gamma_sqllab_no_data")
data = self.run_sql(
"SELECT name FROM {{ table }} LIMIT 10",
"4",
template_params=json.dumps({"table": "birth_names"}),
)
+ assert data["errors"][0]["message"] == (
+ "The database referenced in this query was not found."
+ " Please contact an administrator for further assistance or try again."
+ )
assert data["errors"][0]["error_type"] == "GENERIC_BACKEND_ERROR"
@mock.patch("superset.sql_lab.get_query")