fix: bound task failures and release stalled workers

This commit is contained in:
chenmingxuan committed 2026-10-08 16:10:10 +08:00
1 parent 606ed94160
commit 1fdf7c0d1d
32 files changed
+1121 -93

No files matched your search

+16
View File
@@ -47,6 +47,17 @@ else:
del sys.modules["artemis.graph.state"]
import base64
from io import BytesIO
from PIL import Image
def _valid_screen_base64():
buffer = BytesIO()
Image.new("RGB", (64, 64), "white").save(buffer, format="PNG")
return base64.b64encode(buffer.getvalue()).decode("ascii")
@pytest.fixture
def mock_context():
"""Create a mock ArtemisContext for testing."""
@@ -70,6 +81,7 @@ def mock_context():
# Mock the ADB client for Android
mock_response = Mock()
mock_response.base64 = _valid_screen_base64()
mock_response.json.return_value = {"elements": []}
ctx.ui_adb_client.get_screen_data = Mock(return_value=mock_response)
ctx.ui_adb_client.get_hierarchy = Mock(
@@ -288,6 +300,7 @@ class TestFocusElementIfNeeded:
focused_element["attributes"]["focused"] = "true"
mock_response = Mock()
mock_response.base64 = _valid_screen_base64()
mock_response.json.return_value = {"elements": [focused_element]}
mock_context.ui_adb_client.get_screen_data = Mock(return_value=mock_response)
mock_find_element.return_value = focused_element["attributes"]
@@ -366,6 +379,7 @@ class TestFocusElementIfNeeded:
}
mock_response = Mock()
mock_response.base64 = _valid_screen_base64()
mock_response.json.return_value = {"elements": [element_from_text]}
mock_context.ui_adb_client.get_screen_data = Mock(return_value=mock_response)
mock_find_id.return_value = element_from_id
@@ -401,6 +415,7 @@ class TestFocusElementIfNeeded:
}
mock_response = Mock()
mock_response.base64 = _valid_screen_base64()
mock_response.json.return_value = {"elements": [element_with_bounds]}
mock_context.ui_adb_client.get_screen_data = Mock(return_value=mock_response)
mock_find_text.return_value = element_with_bounds["attributes"]
@@ -428,6 +443,7 @@ class TestFocusElementIfNeeded:
"""Test failure when no locator can find an element."""
mock_response = Mock()
mock_response.base64 = _valid_screen_base64()
mock_response.json.return_value = {"elements": []}
mock_context.ui_adb_client.get_screen_data = Mock(return_value=mock_response)
with (