58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
"""Tests for agent entity dataclasses."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from omnigent.entities.agent import Agent
|
|
|
|
|
|
def test_agent_minimal() -> None:
|
|
agent = Agent(
|
|
id="ag_abc123",
|
|
created_at=1700000000,
|
|
name="research-agent",
|
|
bundle_location="ag_abc123/a1b2c3d4",
|
|
)
|
|
assert agent.id == "ag_abc123"
|
|
assert agent.name == "research-agent"
|
|
assert agent.version == 1
|
|
assert agent.description is None
|
|
assert agent.updated_at is None
|
|
assert agent.session_id is None
|
|
|
|
|
|
def test_agent_full() -> None:
|
|
agent = Agent(
|
|
id="ag_xyz",
|
|
created_at=1700000000,
|
|
name="coder",
|
|
bundle_location="ag_xyz/deadbeef",
|
|
version=3,
|
|
description="A coding agent",
|
|
updated_at=1700001000,
|
|
session_id="conv_session1",
|
|
)
|
|
assert agent.version == 3
|
|
assert agent.description == "A coding agent"
|
|
assert agent.updated_at == 1700001000
|
|
assert agent.session_id == "conv_session1"
|
|
|
|
|
|
def test_agent_is_mutable() -> None:
|
|
"""Agent is a regular (non-frozen) dataclass — version bumps are allowed."""
|
|
agent = Agent(
|
|
id="ag_1",
|
|
created_at=1,
|
|
name="a",
|
|
bundle_location="ag_1/hash",
|
|
)
|
|
agent.version = 2
|
|
assert agent.version == 2
|
|
|
|
|
|
def test_agent_defaults_independent() -> None:
|
|
"""Each Agent gets independent default values."""
|
|
a = Agent(id="ag_a", created_at=1, name="a", bundle_location="a/h")
|
|
b = Agent(id="ag_b", created_at=1, name="b", bundle_location="b/h")
|
|
a.description = "modified"
|
|
assert b.description is None
|