| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from drill.actor import Actor, ActorAction
- class TestActorAction:
- def test_parse_type_action(self):
- action = ActorAction.from_tool_result({"action": "type", "text": "create a worktree"})
- assert action.action == "type"
- assert action.text == "create a worktree"
- def test_parse_done_action(self):
- action = ActorAction.from_tool_result({"action": "done"})
- assert action.action == "done"
- def test_parse_stuck_action(self):
- action = ActorAction.from_tool_result({"action": "stuck"})
- assert action.action == "stuck"
- def test_parse_key_action(self):
- action = ActorAction.from_tool_result({"action": "key", "key": "ctrl-c"})
- assert action.action == "key"
- assert action.key == "ctrl-c"
- class TestActorPrompt:
- def test_builds_system_prompt_naive(self):
- actor = Actor(model="claude-sonnet-4-6", temperature=0.7)
- prompt = actor.build_system_prompt(
- posture="naive",
- intents=["Ask the agent to create a worktree"],
- )
- assert "plain language" in prompt.lower() or "don't know" in prompt.lower()
- assert "create a worktree" in prompt
- def test_builds_system_prompt_spec_aware(self):
- actor = Actor(model="claude-sonnet-4-6", temperature=0.7)
- prompt = actor.build_system_prompt(
- posture="spec-aware",
- intents=["Use the worktree skill"],
- )
- assert "skill" in prompt.lower() or "convention" in prompt.lower()
- class TestActorContext:
- def test_appends_terminal_captures(self):
- actor = Actor(model="claude-sonnet-4-6", temperature=0.7)
- actor.append_capture("Screen 1: Welcome to Claude")
- actor.append_capture("Screen 2: ❯ ")
- messages = actor.build_messages()
- assert len(messages) == 2
- assert "Screen 1" in messages[0]["content"]
- assert "Screen 2" in messages[1]["content"]
|