mirror of
https://github.com/apache/superset.git
synced 2026-09-08 00:04:36 +00:00
feat(Reports&Alerts): remove Selenium support, require Playwright (#43028)
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com>
This commit is contained in:
co-authored by
madhushree agarwal
parent
d91ca50872
commit
bdf8ce69ab
@@ -15,9 +15,10 @@
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from unittest.mock import call, Mock, patch
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from superset.extensions import machine_auth_provider_factory
|
||||
from superset.utils.machine_auth import MachineAuthProvider
|
||||
from tests.integration_tests.base_tests import SupersetTestCase
|
||||
|
||||
|
||||
@@ -27,30 +28,35 @@ class MachineAuthProviderTests(SupersetTestCase):
|
||||
auth_cookies = machine_auth_provider_factory.instance.get_auth_cookies(user)
|
||||
assert auth_cookies["session"] is not None
|
||||
|
||||
@patch("superset.utils.machine_auth.MachineAuthProvider.get_auth_cookies")
|
||||
def test_auth_driver_user(self, get_auth_cookies):
|
||||
def test_authenticate_browser_context_sets_cookies(self):
|
||||
"""authenticate_browser_context navigates to login and sets auth cookies."""
|
||||
user = self.get_user("admin")
|
||||
driver = Mock()
|
||||
get_auth_cookies.return_value = {
|
||||
"session": "session_val",
|
||||
"other_cookie": "other_val",
|
||||
}
|
||||
machine_auth_provider_factory.instance.authenticate_webdriver(driver, user)
|
||||
driver.add_cookie.assert_has_calls(
|
||||
[
|
||||
call({"name": "session", "value": "session_val"}),
|
||||
call({"name": "other_cookie", "value": "other_val"}),
|
||||
]
|
||||
provider = machine_auth_provider_factory.instance
|
||||
|
||||
mock_context = MagicMock()
|
||||
mock_page = MagicMock()
|
||||
mock_context.new_page.return_value = mock_page
|
||||
|
||||
with patch.object(provider, "get_cookies", return_value={"session": "abc123"}):
|
||||
result = provider.authenticate_browser_context(mock_context, user)
|
||||
|
||||
assert result is mock_context
|
||||
mock_page.goto.assert_called_once()
|
||||
mock_context.clear_cookies.assert_called_once()
|
||||
mock_context.add_cookies.assert_called_once()
|
||||
cookies_added = mock_context.add_cookies.call_args[0][0]
|
||||
assert any(
|
||||
c["name"] == "session" and c["value"] == "abc123" for c in cookies_added
|
||||
)
|
||||
|
||||
@patch("superset.utils.machine_auth.request")
|
||||
def test_auth_driver_request(self, request):
|
||||
driver = Mock()
|
||||
request.cookies = {"session": "session_val", "other_cookie": "other_val"}
|
||||
machine_auth_provider_factory.instance.authenticate_webdriver(driver, None)
|
||||
driver.add_cookie.assert_has_calls(
|
||||
[
|
||||
call({"name": "session", "value": "session_val"}),
|
||||
call({"name": "other_cookie", "value": "other_val"}),
|
||||
]
|
||||
)
|
||||
def test_authenticate_browser_context_uses_override(self):
|
||||
"""authenticate_browser_context calls the override func when configured."""
|
||||
user = MagicMock()
|
||||
mock_context = MagicMock()
|
||||
mock_override = MagicMock(return_value=mock_context)
|
||||
|
||||
provider = MachineAuthProvider(auth_webdriver_func_override=mock_override)
|
||||
result = provider.authenticate_browser_context(mock_context, user)
|
||||
|
||||
mock_override.assert_called_once_with(mock_context, user)
|
||||
assert result is mock_context
|
||||
|
||||
Reference in New Issue
Block a user