This commit is contained in:
@@ -46,9 +46,11 @@ class NarrowSignaturePlanner(Planner):
|
||||
class ScreenshotRecordingPlanner(Planner):
|
||||
def __init__(self) -> None:
|
||||
self.screenshots: list[bytes | None] = []
|
||||
self.device_platforms: list[str | None] = []
|
||||
|
||||
def plan(self, *, goal, scene, context, screenshot=None):
|
||||
self.screenshots.append(screenshot)
|
||||
self.device_platforms.append(context.device_platform)
|
||||
if context.step_results:
|
||||
return []
|
||||
return [PlannedStep(action="tap", description="tap")]
|
||||
@@ -69,7 +71,9 @@ def _scene() -> Scene:
|
||||
)
|
||||
|
||||
|
||||
def _runner(*, planner=None, planner_config=None, observer=None) -> TaskRunner:
|
||||
def _runner(
|
||||
*, planner=None, planner_config=None, observer=None, device_platform_provider=None
|
||||
) -> TaskRunner:
|
||||
return TaskRunner(
|
||||
planner=planner,
|
||||
planner_config=planner_config,
|
||||
@@ -80,6 +84,7 @@ def _runner(*, planner=None, planner_config=None, observer=None) -> TaskRunner:
|
||||
config=TaskRunnerConfig(max_steps=5),
|
||||
observer=observer or (lambda device_id: _scene()),
|
||||
screenshot_provider=lambda device_id: PNG_10X20,
|
||||
device_platform_provider=device_platform_provider,
|
||||
)
|
||||
|
||||
|
||||
@@ -126,6 +131,19 @@ def test_task_runner_passes_screenshot_to_planner_that_declares_it() -> None:
|
||||
assert planner.screenshots == [PNG_10X20, PNG_10X20]
|
||||
|
||||
|
||||
def test_task_runner_passes_configured_device_platform_to_planner_context() -> None:
|
||||
planner = ScreenshotRecordingPlanner()
|
||||
runner = _runner(
|
||||
planner=planner,
|
||||
device_platform_provider=lambda device_id: "ios",
|
||||
)
|
||||
|
||||
result = runner.run(Task(goal="inspect", device_id="phone"))
|
||||
|
||||
assert result.status == "completed"
|
||||
assert planner.device_platforms == ["ios", "ios"]
|
||||
|
||||
|
||||
def test_task_runner_default_planner_is_stub_when_ai_planner_disabled() -> None:
|
||||
runner = _runner(planner=None, planner_config=PlannerConfig(enabled=False))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user