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")