fix: bound task failures and release stalled workers
This commit is contained in:
1 parent
606ed94160
commit
1fdf7c0d1d
32 files changed
+1121
-93
No files matched your search
@@ -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 (
|
||||
|
||||
Reference in new issue
Block a user