This is an automated email from the ASF dual-hosted git repository.
rusackas 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 5ffdac1871d fix(mcp): align pooled screenshot override signature
(#42384)
5ffdac1871d is described below
commit 5ffdac1871d2b2d5579c13130eecdd499c242c79
Author: Joe Li <[email protected]>
AuthorDate: Fri Jul 24 13:32:31 2026 -0700
fix(mcp): align pooled screenshot override signature (#42384)
---
.../mcp_service/screenshot/pooled_screenshot.py | 8 ++++-
.../mcp_service/test_pooled_screenshot.py | 36 ++++++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/superset/mcp_service/screenshot/pooled_screenshot.py
b/superset/mcp_service/screenshot/pooled_screenshot.py
index 2da44c01057..977d4899b9f 100644
--- a/superset/mcp_service/screenshot/pooled_screenshot.py
+++ b/superset/mcp_service/screenshot/pooled_screenshot.py
@@ -50,7 +50,10 @@ class PooledBaseScreenshot(BaseScreenshot):
"""
def get_screenshot(
- self, user: User, window_size: WindowSize | None = None
+ self,
+ user: User,
+ window_size: WindowSize | None = None,
+ log_context: str | None = None,
) -> bytes | None:
"""
Generate screenshot using pooled WebDriver with retry logic for
reliability.
@@ -58,6 +61,9 @@ class PooledBaseScreenshot(BaseScreenshot):
Args:
user: User context for authentication
window_size: Optional window size override
+ log_context: Accepted for signature compatibility with
+ BaseScreenshot; the pooled Selenium path does not emit the
+ per-tile readiness logs that use it.
Returns:
Screenshot as PNG bytes or None if failed
diff --git a/tests/unit_tests/mcp_service/test_pooled_screenshot.py
b/tests/unit_tests/mcp_service/test_pooled_screenshot.py
new file mode 100644
index 00000000000..da70bbacfd9
--- /dev/null
+++ b/tests/unit_tests/mcp_service/test_pooled_screenshot.py
@@ -0,0 +1,36 @@
+# 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.
+
+from unittest.mock import MagicMock, patch
+
+from superset.mcp_service.screenshot.pooled_screenshot import
PooledBaseScreenshot
+
+
+@patch("superset.mcp_service.screenshot.pooled_screenshot.retry_screenshot_operation")
+def test_get_screenshot_accepts_base_log_context(
+ mock_retry_screenshot_operation: MagicMock,
+) -> None:
+ screenshot = PooledBaseScreenshot("http://example.com", "digest")
+ user = MagicMock()
+
+ screenshot.get_screenshot(user, log_context="cache_key=abc")
+
+ mock_retry_screenshot_operation.assert_called_once_with(
+ screenshot._get_screenshot_internal, # pylint:
disable=protected-access
+ user,
+ None,
+ )