This commit is contained in:
@@ -50,6 +50,9 @@ def create_execution_factories(
|
||||
timeline=timeline,
|
||||
planner=_host_agent_planner(resolved_host_agent_config),
|
||||
planner_config=_host_agent_planner_config(),
|
||||
device_platform_provider=lambda device_id: _device_platform(
|
||||
manager, device_id
|
||||
),
|
||||
)
|
||||
|
||||
def create_workflow_runner() -> WorkflowRunner:
|
||||
@@ -103,3 +106,15 @@ def _host_agent_planner(
|
||||
client=CloudProxyToolCallingClient(resolved_config),
|
||||
config=planner_config,
|
||||
)
|
||||
|
||||
|
||||
def _device_platform(manager: DeviceManager, device_id: str) -> str | None:
|
||||
for device in manager.list_devices():
|
||||
if device.id != device_id:
|
||||
continue
|
||||
if device.driver_type == "wda":
|
||||
return "ios"
|
||||
if device.driver_type == "uiautomator2":
|
||||
return "android"
|
||||
return None
|
||||
return None
|
||||
|
||||
@@ -141,6 +141,24 @@ def test_created_task_runner_observer_uses_configured_manager(
|
||||
assert seen == {"device_id": "phone-1", "manager": manager}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("driver_type", "expected_platform"),
|
||||
[("wda", "ios"), ("uiautomator2", "android")],
|
||||
)
|
||||
def test_created_task_runner_resolves_platform_from_configured_driver(
|
||||
tmp_path, driver_type: str, expected_platform: str
|
||||
) -> None:
|
||||
manager = DeviceManager()
|
||||
manager.register_device("phone-1", lambda: FakeDriver(), driver_type=driver_type)
|
||||
factories = create_execution_factories(
|
||||
manager, workflow_store=WorkflowStore(tmp_path / "workflows.sqlite3")
|
||||
)
|
||||
task_runner = factories.task_runner_factory()
|
||||
|
||||
assert task_runner.device_platform_provider is not None
|
||||
assert task_runner.device_platform_provider("phone-1") == expected_platform
|
||||
|
||||
|
||||
def test_created_task_runner_defaults_to_ai_planner(
|
||||
tmp_path, monkeypatch: pytest.MonkeyPatch
|
||||
) -> None:
|
||||
|
||||
Reference in New Issue
Block a user