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

sadpandajoe pushed a commit to branch fix/pooled-screenshot-log-context-override
in repository https://gitbox.apache.org/repos/asf/superset.git

commit b8bd485ff00242407e38d726a477e587f99f3229
Author: Joe Li <[email protected]>
AuthorDate: Fri Jul 24 06:53:08 2026 -0700

    fix(mcp): align pooled screenshot override signature
---
 .../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,
+    )

Reply via email to