Spaces:
Sleeping
Sleeping
File size: 2,304 Bytes
6657e32 5ed3a9a 6657e32 b20b4ef 5ed3a9a 6657e32 5ed3a9a 6657e32 5ed3a9a 6657e32 5ed3a9a | 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | """Tests for core/types.py — enums and ABC."""
import pytest
from core.types import BackendName, AgentId, LLMBackend
from agents.definitions import AgentDef
class TestEnums:
def test_backend_names(self):
assert BackendName.MOCK == "mock"
assert BackendName.ANTHROPIC == "anthropic"
assert BackendName.OPENAI == "openai"
assert BackendName.GEMINI == "gemini"
def test_agent_ids(self):
assert AgentId.DESIGN == "design"
assert AgentId.ENGINEERING == "engineering"
assert AgentId.CNC == "cnc"
assert AgentId.CAD == "cad"
def test_backend_name_is_string(self):
assert isinstance(BackendName.MOCK, str)
assert BackendName.MOCK in {"mock", "anthropic"}
class TestAgentDefModel:
def test_create(self):
ad = AgentDef(id="design", name="Design", role="Designer", color="#fff", avatar="D", goal="g", backstory="b")
assert ad.id == "design"
assert ad.name == "Design"
def test_model_dump(self):
ad = AgentDef(id="cad", name="CAD", role="Coder", color="#000", avatar="C", goal="g", backstory="b")
d = ad.model_dump()
assert d["id"] == "cad"
assert "role" in d
class TestLLMBackendABC:
def test_cannot_instantiate(self):
with pytest.raises(TypeError):
LLMBackend()
def test_subclass_must_implement_generate(self):
class Incomplete(LLMBackend):
pass
with pytest.raises(TypeError):
Incomplete()
def test_subclass_with_generate(self):
class Complete(LLMBackend):
def generate(self, messages):
return "ok"
b = Complete()
assert b.generate([]) == "ok"
def test_split_system_message(self):
msgs = [
{"role": "system", "content": "You are a bot"},
{"role": "user", "content": "hello"},
]
system, rest = LLMBackend.split_system_message(msgs)
assert system == "You are a bot"
assert len(rest) == 1
assert rest[0]["role"] == "user"
def test_split_system_message_no_system(self):
msgs = [{"role": "user", "content": "hello"}]
system, rest = LLMBackend.split_system_message(msgs)
assert system == ""
assert len(rest) == 1
|