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, + )
