mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
chore: replace selenium user with fixed user (#31844)
This commit is contained in:
@@ -30,7 +30,7 @@ from superset import db, is_feature_enabled, security_manager
|
||||
from superset.extensions import machine_auth_provider_factory
|
||||
from superset.models.dashboard import Dashboard
|
||||
from superset.models.slice import Slice
|
||||
from superset.tasks.types import ExecutorType
|
||||
from superset.tasks.types import ExecutorType, FixedExecutor
|
||||
from superset.utils import json
|
||||
from superset.utils.screenshots import ChartScreenshot, DashboardScreenshot
|
||||
from superset.utils.urls import get_url_path
|
||||
@@ -53,8 +53,8 @@ class TestThumbnailsSeleniumLive(LiveServerTestCase):
|
||||
return app
|
||||
|
||||
def url_open_auth(self, username: str, url: str):
|
||||
admin_user = security_manager.find_user(username=username)
|
||||
cookies = machine_auth_provider_factory.instance.get_auth_cookies(admin_user)
|
||||
user = security_manager.find_user(username=username)
|
||||
cookies = machine_auth_provider_factory.instance.get_auth_cookies(user)
|
||||
opener = urllib.request.build_opener()
|
||||
opener.addheaders.append(("Cookie", f"session={cookies['session']}"))
|
||||
return opener.open(f"{self.get_server_url()}/{url}")
|
||||
@@ -70,7 +70,7 @@ class TestThumbnailsSeleniumLive(LiveServerTestCase):
|
||||
thumbnail_url = resp["result"][0]["thumbnail_url"]
|
||||
|
||||
response = self.url_open_auth(
|
||||
"admin",
|
||||
ADMIN_USERNAME,
|
||||
thumbnail_url,
|
||||
)
|
||||
assert response.getcode() == 202
|
||||
@@ -84,9 +84,7 @@ class TestWebDriverScreenshotErrorDetector(SupersetTestCase):
|
||||
self, mock_find_unexpected_errors, mock_firefox, mock_webdriver_wait
|
||||
):
|
||||
webdriver_proxy = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.dashboard", dashboard_id_or_slug=1)
|
||||
webdriver_proxy.get_screenshot(url, "grid-container", user=user)
|
||||
|
||||
@@ -100,9 +98,7 @@ class TestWebDriverScreenshotErrorDetector(SupersetTestCase):
|
||||
):
|
||||
app.config["SCREENSHOT_REPLACE_UNEXPECTED_ERRORS"] = True
|
||||
webdriver_proxy = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.dashboard", dashboard_id_or_slug=1)
|
||||
webdriver_proxy.get_screenshot(url, "grid-container", user=user)
|
||||
|
||||
@@ -149,9 +145,7 @@ class TestWebDriverSelenium(SupersetTestCase):
|
||||
self, mock_sleep, mock_webdriver, mock_webdriver_wait
|
||||
):
|
||||
webdriver = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.slice", slice_id=1, standalone="true")
|
||||
app.config["SCREENSHOT_SELENIUM_HEADSTART"] = 5
|
||||
webdriver.get_screenshot(url, "chart-container", user=user)
|
||||
@@ -162,9 +156,7 @@ class TestWebDriverSelenium(SupersetTestCase):
|
||||
def test_screenshot_selenium_locate_wait(self, mock_webdriver, mock_webdriver_wait):
|
||||
app.config["SCREENSHOT_LOCATE_WAIT"] = 15
|
||||
webdriver = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.slice", slice_id=1, standalone="true")
|
||||
webdriver.get_screenshot(url, "chart-container", user=user)
|
||||
assert mock_webdriver_wait.call_args_list[0] == call(ANY, 15)
|
||||
@@ -174,9 +166,7 @@ class TestWebDriverSelenium(SupersetTestCase):
|
||||
def test_screenshot_selenium_load_wait(self, mock_webdriver, mock_webdriver_wait):
|
||||
app.config["SCREENSHOT_LOAD_WAIT"] = 15
|
||||
webdriver = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.slice", slice_id=1, standalone="true")
|
||||
webdriver.get_screenshot(url, "chart-container", user=user)
|
||||
assert mock_webdriver_wait.call_args_list[2] == call(ANY, 15)
|
||||
@@ -188,9 +178,7 @@ class TestWebDriverSelenium(SupersetTestCase):
|
||||
self, mock_sleep, mock_webdriver, mock_webdriver_wait
|
||||
):
|
||||
webdriver = WebDriverSelenium("firefox")
|
||||
user = security_manager.get_user_by_username(
|
||||
app.config["THUMBNAIL_SELENIUM_USER"]
|
||||
)
|
||||
user = security_manager.get_user_by_username(ADMIN_USERNAME)
|
||||
url = get_url_path("Superset.slice", slice_id=1, standalone="true")
|
||||
app.config["SCREENSHOT_SELENIUM_ANIMATION_WAIT"] = 4
|
||||
webdriver.get_screenshot(url, "chart-container", user=user)
|
||||
@@ -232,7 +220,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@with_feature_flags(THUMBNAILS=True)
|
||||
def test_get_async_dashboard_screenshot_as_selenium(self):
|
||||
def test_get_async_dashboard_screenshot_as_fixed_user(self):
|
||||
"""
|
||||
Thumbnails: Simple get async dashboard screenshot as selenium user
|
||||
"""
|
||||
@@ -241,7 +229,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
patch.dict(
|
||||
"superset.thumbnails.digest.current_app.config",
|
||||
{
|
||||
"THUMBNAIL_EXECUTE_AS": [ExecutorType.SELENIUM],
|
||||
"THUMBNAIL_EXECUTORS": [FixedExecutor(ADMIN_USERNAME)],
|
||||
},
|
||||
),
|
||||
patch(
|
||||
@@ -251,8 +239,8 @@ class TestThumbnails(SupersetTestCase):
|
||||
mock_adjust_string.return_value = self.digest_return_value
|
||||
_, thumbnail_url = self._get_id_and_thumbnail_url(DASHBOARD_URL)
|
||||
assert self.digest_hash in thumbnail_url
|
||||
assert mock_adjust_string.call_args[0][1] == ExecutorType.SELENIUM
|
||||
assert mock_adjust_string.call_args[0][2] == "admin"
|
||||
assert mock_adjust_string.call_args[0][1] == ExecutorType.FIXED_USER
|
||||
assert mock_adjust_string.call_args[0][2] == ADMIN_USERNAME
|
||||
|
||||
rv = self.client.get(thumbnail_url)
|
||||
assert rv.status_code == 202
|
||||
@@ -269,7 +257,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
patch.dict(
|
||||
"superset.thumbnails.digest.current_app.config",
|
||||
{
|
||||
"THUMBNAIL_EXECUTE_AS": [ExecutorType.CURRENT_USER],
|
||||
"THUMBNAIL_EXECUTORS": [ExecutorType.CURRENT_USER],
|
||||
},
|
||||
),
|
||||
patch(
|
||||
@@ -310,7 +298,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
|
||||
@pytest.mark.usefixtures("load_birth_names_dashboard_with_slices")
|
||||
@with_feature_flags(THUMBNAILS=True)
|
||||
def test_get_async_chart_screenshot_as_selenium(self):
|
||||
def test_get_async_chart_screenshot_as_fixed_user(self):
|
||||
"""
|
||||
Thumbnails: Simple get async chart screenshot as selenium user
|
||||
"""
|
||||
@@ -319,7 +307,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
patch.dict(
|
||||
"superset.thumbnails.digest.current_app.config",
|
||||
{
|
||||
"THUMBNAIL_EXECUTE_AS": [ExecutorType.SELENIUM],
|
||||
"THUMBNAIL_EXECUTORS": [FixedExecutor(ADMIN_USERNAME)],
|
||||
},
|
||||
),
|
||||
patch(
|
||||
@@ -329,8 +317,8 @@ class TestThumbnails(SupersetTestCase):
|
||||
mock_adjust_string.return_value = self.digest_return_value
|
||||
_, thumbnail_url = self._get_id_and_thumbnail_url(CHART_URL)
|
||||
assert self.digest_hash in thumbnail_url
|
||||
assert mock_adjust_string.call_args[0][1] == ExecutorType.SELENIUM
|
||||
assert mock_adjust_string.call_args[0][2] == "admin"
|
||||
assert mock_adjust_string.call_args[0][1] == ExecutorType.FIXED_USER
|
||||
assert mock_adjust_string.call_args[0][2] == ADMIN_USERNAME
|
||||
|
||||
rv = self.client.get(thumbnail_url)
|
||||
assert rv.status_code == 202
|
||||
@@ -347,7 +335,7 @@ class TestThumbnails(SupersetTestCase):
|
||||
patch.dict(
|
||||
"superset.thumbnails.digest.current_app.config",
|
||||
{
|
||||
"THUMBNAIL_EXECUTE_AS": [ExecutorType.CURRENT_USER],
|
||||
"THUMBNAIL_EXECUTORS": [ExecutorType.CURRENT_USER],
|
||||
},
|
||||
),
|
||||
patch(
|
||||
|
||||
Reference in New Issue
Block a user