fix: set correct schema on config import (#16041)

* fix: set correct schema on config import

* Fix lint

* Fix test

* Fix tests

* Fix another test

* Fix another test

* Fix base test

* Add helper function

* Fix examples

* Fix test

* Fix test

* Fixing more tests

(cherry picked from commit 1fbce88a46)
This commit is contained in:
Beto Dealmeida
2021-11-04 11:09:08 -07:00
committed by Elizabeth Thompson
parent 3d8ce130ba
commit 77c4f2cb11
30 changed files with 309 additions and 116 deletions

View File

@@ -19,15 +19,16 @@
import json
import unittest
from unittest import mock
import pytest
from sqlalchemy import inspect
from tests.integration_tests.fixtures.birth_names_dashboard import (
load_birth_names_dashboard_with_slices,
)
import pytest
from tests.integration_tests.fixtures.world_bank_dashboard import (
load_world_bank_dashboard_with_slices,
)
from tests.integration_tests.fixtures.energy_dashboard import (
load_energy_table_with_slice,
)
@@ -38,6 +39,7 @@ from superset.connectors.druid.models import DruidDatasource
from superset.connectors.sqla.models import SqlaTable
from superset.models import core as models
from superset.models.datasource_access_request import DatasourceAccessRequest
from superset.utils.core import get_example_database
from .base_tests import SupersetTestCase
@@ -152,9 +154,16 @@ class TestRequestAccess(SupersetTestCase):
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_override_role_permissions_1_table(self):
database = get_example_database()
engine = database.get_sqla_engine()
schema = inspect(engine).default_schema_name
perm_data = ROLE_TABLES_PERM_DATA.copy()
perm_data["database"][0]["schema"][0]["name"] = schema
response = self.client.post(
"/superset/override_role_permissions/",
data=json.dumps(ROLE_TABLES_PERM_DATA),
data=json.dumps(perm_data),
content_type="application/json",
)
self.assertEqual(201, response.status_code)
@@ -171,6 +180,12 @@ class TestRequestAccess(SupersetTestCase):
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
def test_override_role_permissions_druid_and_table(self):
database = get_example_database()
engine = database.get_sqla_engine()
schema = inspect(engine).default_schema_name
perm_data = ROLE_ALL_PERM_DATA.copy()
perm_data["database"][0]["schema"][0]["name"] = schema
response = self.client.post(
"/superset/override_role_permissions/",
data=json.dumps(ROLE_ALL_PERM_DATA),
@@ -201,6 +216,10 @@ class TestRequestAccess(SupersetTestCase):
"load_energy_table_with_slice", "load_birth_names_dashboard_with_slices"
)
def test_override_role_permissions_drops_absent_perms(self):
database = get_example_database()
engine = database.get_sqla_engine()
schema = inspect(engine).default_schema_name
override_me = security_manager.find_role("override_me")
override_me.permissions.append(
security_manager.find_permission_view_menu(
@@ -210,9 +229,12 @@ class TestRequestAccess(SupersetTestCase):
)
db.session.flush()
perm_data = ROLE_TABLES_PERM_DATA.copy()
perm_data["database"][0]["schema"][0]["name"] = schema
response = self.client.post(
"/superset/override_role_permissions/",
data=json.dumps(ROLE_TABLES_PERM_DATA),
data=json.dumps(perm_data),
content_type="application/json",
)
self.assertEqual(201, response.status_code)