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

maximebeauchemin pushed a commit to branch main_db_not_needed
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git

commit 1cf8e28ac60469fcbff083bdc4462c8392251aae
Author: Maxime Beauchemin <[email protected]>
AuthorDate: Thu Aug 15 09:34:16 2019 -0700

    fix tests
---
 superset/cli.py       |  3 --
 tests/base_tests.py   | 21 +++++++++++--
 tests/core_tests.py   | 17 ++---------
 tests/sqllab_tests.py | 82 ++++++++++++++++++++++++---------------------------
 4 files changed, 59 insertions(+), 64 deletions(-)

diff --git a/superset/cli.py b/superset/cli.py
index 48ae311..b30b654 100755
--- a/superset/cli.py
+++ b/superset/cli.py
@@ -432,16 +432,13 @@ def load_test_users_run():
 
         sm = security_manager
 
-        main_db = utils.get_main_database()
         examples_db = utils.get_example_database()
 
-        main_pv = sm.add_permission_view_menu("database_access", main_db.perm)
         examples_pv = sm.add_permission_view_menu("database_access", 
examples_db.perm)
 
         sm.sync_role_definitions()
         gamma_sqllab_role = sm.add_role("gamma_sqllab")
         sm.add_permission_role(gamma_sqllab_role, examples_pv)
-        sm.add_permission_role(gamma_sqllab_role, main_pv)
 
         for role in ["Gamma", "sql_lab"]:
             for perm in sm.find_role(role).permissions:
diff --git a/tests/base_tests.py b/tests/base_tests.py
index ae046d0..0f84456 100644
--- a/tests/base_tests.py
+++ b/tests/base_tests.py
@@ -183,7 +183,7 @@ class SupersetTestCase(unittest.TestCase):
         user_name=None,
         raise_on_error=False,
         query_limit=None,
-        database_name="main",
+        database_name="examples",
     ):
         if user_name:
             self.logout()
@@ -204,13 +204,30 @@ class SupersetTestCase(unittest.TestCase):
             raise Exception("run_sql failed")
         return resp
 
+    def create_fake_db(self):
+        self.login(username="admin")
+        database_name = "fake_db_100"
+        db_id = 100
+        extra = """{
+            "schemas_allowed_for_csv_upload":
+            ["this_schema_is_allowed", "this_schema_is_allowed_too"]
+        }"""
+
+        return self.get_or_create(
+            cls=models.Database,
+            criteria={"database_name": database_name},
+            session=db.session,
+            id=db_id,
+            extra=extra,
+        )
+
     def validate_sql(
         self,
         sql,
         client_id=None,
         user_name=None,
         raise_on_error=False,
-        database_name="main",
+        database_name="examples",
     ):
         if user_name:
             self.logout()
diff --git a/tests/core_tests.py b/tests/core_tests.py
index 5db0b77..9b641a9 100644
--- a/tests/core_tests.py
+++ b/tests/core_tests.py
@@ -746,24 +746,11 @@ class CoreTests(SupersetTestCase):
     def test_schemas_access_for_csv_upload_endpoint(
         self, mock_all_datasource_access, mock_database_access, 
mock_schemas_accessible
     ):
+        self.login(username="admin")
+        dbobj = self.create_fake_db()
         mock_all_datasource_access.return_value = False
         mock_database_access.return_value = False
         mock_schemas_accessible.return_value = ["this_schema_is_allowed_too"]
-        database_name = "fake_db_100"
-        db_id = 100
-        extra = """{
-            "schemas_allowed_for_csv_upload":
-            ["this_schema_is_allowed", "this_schema_is_allowed_too"]
-        }"""
-
-        self.login(username="admin")
-        dbobj = self.get_or_create(
-            cls=models.Database,
-            criteria={"database_name": database_name},
-            session=db.session,
-            id=db_id,
-            extra=extra,
-        )
         data = self.get_json_resp(
             url="/superset/schemas_access_for_csv_upload?db_id={db_id}".format(
                 db_id=dbobj.id
diff --git a/tests/sqllab_tests.py b/tests/sqllab_tests.py
index 35a7d96..42988f3 100644
--- a/tests/sqllab_tests.py
+++ b/tests/sqllab_tests.py
@@ -17,7 +17,6 @@
 """Unit tests for Sql Lab"""
 from datetime import datetime, timedelta
 import json
-import unittest
 
 import prison
 
@@ -25,9 +24,13 @@ from superset import db, security_manager
 from superset.dataframe import SupersetDataFrame
 from superset.db_engine_specs import BaseEngineSpec
 from superset.models.sql_lab import Query
-from superset.utils.core import datetime_to_epoch, get_main_database
+from superset.utils.core import datetime_to_epoch, get_example_database
 from .base_tests import SupersetTestCase
 
+QUERY_1 = "SELECT * FROM birth_names LIMIT 1"
+QUERY_2 = "SELECT * FROM NO_TABLE"
+QUERY_3 = "SELECT * FROM birth_names LIMIT 10"
+
 
 class SqlLabTests(SupersetTestCase):
     """Testings for Sql Lab"""
@@ -38,17 +41,9 @@ class SqlLabTests(SupersetTestCase):
     def run_some_queries(self):
         db.session.query(Query).delete()
         db.session.commit()
-        self.run_sql(
-            "SELECT * FROM ab_user", client_id="client_id_1", user_name="admin"
-        )
-        self.run_sql(
-            "SELECT * FROM NO_TABLE", client_id="client_id_3", 
user_name="admin"
-        )
-        self.run_sql(
-            "SELECT * FROM ab_permission",
-            client_id="client_id_2",
-            user_name="gamma_sqllab",
-        )
+        self.run_sql(QUERY_1, client_id="client_id_1", user_name="admin")
+        self.run_sql(QUERY_2, client_id="client_id_3", user_name="admin")
+        self.run_sql(QUERY_3, client_id="client_id_2", 
user_name="gamma_sqllab")
         self.logout()
 
     def tearDown(self):
@@ -70,8 +65,8 @@ class SqlLabTests(SupersetTestCase):
         self.login("admin")
 
         multi_sql = """
-        SELECT first_name FROM ab_user;
-        SELECT first_name FROM ab_user;
+        SELECT * FROM birth_names LIMIT 1;
+        SELECT * FROM birth_names LIMIT 2;
         """
         data = self.run_sql(multi_sql, "2234")
         self.assertLess(0, len(data["data"]))
@@ -79,18 +74,18 @@ class SqlLabTests(SupersetTestCase):
     def test_explain(self):
         self.login("admin")
 
-        data = self.run_sql("EXPLAIN SELECT * FROM ab_user", "1")
+        data = self.run_sql("EXPLAIN SELECT * FROM birth_names", "1")
         self.assertLess(0, len(data["data"]))
 
     def test_sql_json_has_access(self):
-        main_db = get_main_database()
-        main_db_permission_view = security_manager.add_permission_view_menu(
-            "database_access", main_db.perm
+        examples_db = get_example_database()
+        examples_db_permission_view = 
security_manager.add_permission_view_menu(
+            "database_access", examples_db.perm
         )
 
         astronaut = security_manager.add_role("Astronaut")
-        security_manager.add_permission_role(astronaut, 
main_db_permission_view)
-        # Astronaut role is Gamma + sqllab +  main db permissions
+        security_manager.add_permission_role(astronaut, 
examples_db_permission_view)
+        # Astronaut role is Gamma + sqllab + db permissions
         for perm in security_manager.find_role("Gamma").permissions:
             security_manager.add_permission_role(astronaut, perm)
         for perm in security_manager.find_role("sql_lab").permissions:
@@ -106,7 +101,7 @@ class SqlLabTests(SupersetTestCase):
                 astronaut,
                 password="general",
             )
-        data = self.run_sql("SELECT * FROM ab_user", "3", user_name="gagarin")
+        data = self.run_sql(QUERY_1, "3", user_name="gagarin")
         db.session.query(Query).delete()
         db.session.commit()
         self.assertLess(0, len(data["data"]))
@@ -125,8 +120,8 @@ class SqlLabTests(SupersetTestCase):
         self.assertEquals(2, len(data))
 
         # Run 2 more queries
-        self.run_sql("SELECT * FROM ab_user LIMIT 1", client_id="client_id_4")
-        self.run_sql("SELECT * FROM ab_user LIMIT 2", client_id="client_id_5")
+        self.run_sql("SELECT * FROM birth_names LIMIT 1", 
client_id="client_id_4")
+        self.run_sql("SELECT * FROM birth_names LIMIT 2", 
client_id="client_id_5")
         self.login("admin")
         data = self.get_json_resp("/superset/queries/0")
         self.assertEquals(4, len(data))
@@ -134,7 +129,7 @@ class SqlLabTests(SupersetTestCase):
         now = datetime.now() + timedelta(days=1)
         query = (
             db.session.query(Query)
-            .filter_by(sql="SELECT * FROM ab_user LIMIT 1")
+            .filter_by(sql="SELECT * FROM birth_names LIMIT 1")
             .first()
         )
         query.changed_on = now
@@ -153,13 +148,15 @@ class SqlLabTests(SupersetTestCase):
     def test_search_query_on_db_id(self):
         self.run_some_queries()
         self.login("admin")
-        main_dbid = get_main_database().id
+        examples_dbid = get_example_database().id
 
         # Test search queries on database Id
-        data = 
self.get_json_resp(f"/superset/search_queries?database_id={main_dbid}")
+        data = self.get_json_resp(
+            f"/superset/search_queries?database_id={examples_dbid}"
+        )
         self.assertEquals(3, len(data))
         db_ids = [k["dbId"] for k in data]
-        self.assertEquals([main_dbid for i in range(3)], db_ids)
+        self.assertEquals([examples_dbid for i in range(3)], db_ids)
 
         resp = self.get_resp("/superset/search_queries?database_id=-1")
         data = json.loads(resp)
@@ -200,10 +197,10 @@ class SqlLabTests(SupersetTestCase):
     def test_search_query_on_text(self):
         self.run_some_queries()
         self.login("admin")
-        url = "/superset/search_queries?search_text=permission"
+        url = "/superset/search_queries?search_text=birth"
         data = self.get_json_resp(url)
-        self.assertEquals(1, len(data))
-        self.assertIn("permission", data[0]["sql"])
+        self.assertEquals(2, len(data))
+        self.assertIn("birth", data[0]["sql"])
 
     def test_search_query_on_time(self):
         self.run_some_queries()
@@ -291,6 +288,7 @@ class SqlLabTests(SupersetTestCase):
         self.assertEquals(len(cols), len(cdf.columns))
 
     def test_sqllab_viz(self):
+        examples_dbid = get_example_database().id
         payload = {
             "chartType": "dist_bar",
             "datasourceName": "test_viz_flow_table",
@@ -311,11 +309,10 @@ class SqlLabTests(SupersetTestCase):
                 },
             ],
             "sql": """\
-                SELECT viz_type, count(1) as ccount
-                FROM slices
-                WHERE viz_type LIKE '%a%'
-                GROUP BY viz_type""",
-            "dbId": 1,
+                SELECT *
+                FROM birth_names
+                LIMIT 10""",
+            "dbId": examples_dbid,
         }
         data = {"data": json.dumps(payload)}
         resp = self.get_json_resp("/superset/sqllab_viz/", data=data)
@@ -401,6 +398,7 @@ class SqlLabTests(SupersetTestCase):
 
     def test_api_database(self):
         self.login("admin")
+        self.create_fake_db()
 
         arguments = {
             "keys": [],
@@ -410,12 +408,8 @@ class SqlLabTests(SupersetTestCase):
             "page": 0,
             "page_size": -1,
         }
-        expected_results = ["examples", "fake_db_100", "main"]
         url = "api/v1/database/?{}={}".format("q", prison.dumps(arguments))
-        data = self.get_json_resp(url)
-        for i, expected_result in enumerate(expected_results):
-            self.assertEquals(expected_result, 
data["result"][i]["database_name"])
-
-
-if __name__ == "__main__":
-    unittest.main()
+        self.assertEquals(
+            {"examples", "fake_db_100"},
+            {r.get("database_name") for r in 
self.get_json_resp(url)["result"]},
+        )

Reply via email to