stream responses and all tests passing
This commit is contained in:
+30
-12
@@ -24,24 +24,42 @@ def settings():
|
||||
)
|
||||
|
||||
|
||||
# tests/conftest.py - replace mock_anthropic_client fixture
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_anthropic_client():
|
||||
"""Mock anthropic client that returns a fake response."""
|
||||
"""Mock Anthropic client with streaming support."""
|
||||
mock_client = AsyncMock()
|
||||
|
||||
# create a realistic fake response
|
||||
fake_message = Message(
|
||||
id="msg_test123",
|
||||
type="message",
|
||||
role="assistant",
|
||||
content=[TextBlock(type="text", text="42")],
|
||||
model="claude-test-model",
|
||||
stop_reason="end_turn",
|
||||
usage=Usage(input_tokens=10, output_tokens=5),
|
||||
# Create mock stream
|
||||
mock_stream = AsyncMock()
|
||||
|
||||
# Mock text_stream - simple async generator
|
||||
async def fake_text():
|
||||
yield "42"
|
||||
|
||||
mock_stream.text_stream = fake_text()
|
||||
|
||||
# Mock get_final_message
|
||||
mock_stream.get_final_message = AsyncMock(
|
||||
return_value=Message(
|
||||
id="msg_test123",
|
||||
type="message",
|
||||
role="assistant",
|
||||
content=[TextBlock(type="text", text="42")],
|
||||
model="claude-test-model",
|
||||
stop_reason="end_turn",
|
||||
usage=Usage(input_tokens=10, output_tokens=1),
|
||||
)
|
||||
)
|
||||
|
||||
# make messages.create() return this fake message
|
||||
mock_client.messages.create = AsyncMock(return_value=fake_message)
|
||||
# Mock context manager
|
||||
mock_stream.__aenter__ = AsyncMock(return_value=mock_stream)
|
||||
mock_stream.__aexit__ = AsyncMock()
|
||||
|
||||
# Wire up
|
||||
mock_client.messages.stream = MagicMock(return_value=mock_stream)
|
||||
|
||||
return mock_client
|
||||
|
||||
|
||||
Reference in New Issue
Block a user