File size: 762 Bytes
b1e14ec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from unittest.mock import patch

from adapters.inference.brain_api_adapter import BrainAPIAdapter
from pydantic import BaseModel


class User(BaseModel):
    name: str
    age: int


def test_brain_api_generate_structured_success():
    adapter = BrainAPIAdapter(api_url="http://brain-api:5000")

    # The structured generation path produces raw text (here valid JSON) and
    # validates it against the Pydantic response model.
    with patch.object(
        adapter, "generate", return_value='{"name": "Test User", "age": 25}'
    ) as mock_generate:
        result = adapter.generate_structured(
            prompt="Extract user info", response_model=User
        )

    assert result == User(name="Test User", age=25)
    mock_generate.assert_called_once()