"""Tests for FakeEngine.""" from __future__ import annotations import pytest from tests.agents.fake_engine import FakeEngine def test_fake_engine_returns_responses_in_order(): engine = FakeEngine( [ {"content": "first"}, {"content": "second"}, ] ) r1 = engine.generate([], model="m") r2 = engine.generate([], model="m") assert r1["content"] == "first" assert r2["content"] == "second" assert engine.call_count == 2 def test_fake_engine_repeats_last_response(): engine = FakeEngine([{"content": "only"}]) engine.generate([], model="m") r = engine.generate([], model="m") assert r["content"] == "only" def test_fake_engine_raises_on_request(): engine = FakeEngine([{"raise": ValueError("boom")}]) with pytest.raises(ValueError, match="boom"): engine.generate([], model="m") def test_fake_engine_tool_calls(): engine = FakeEngine( [ { "content": "", "tool_calls": [ {"id": "1", "function": {"name": "think", "arguments": "{}"}} ], } ] ) r = engine.generate([], model="m") assert r["finish_reason"] == "tool_calls" assert len(r["tool_calls"]) == 1