30 lines
835 B
Python
30 lines
835 B
Python
from __future__ import annotations
|
|
|
|
from datetime import UTC, datetime
|
|
from uuid import uuid4
|
|
|
|
from schemas.domain.chat_message import AgentChatMessage
|
|
|
|
|
|
def test_agent_chat_message_schema_matches_messages_columns() -> None:
|
|
now = datetime.now(UTC)
|
|
payload = {
|
|
"id": uuid4(),
|
|
"seq": 3,
|
|
"role": "assistant",
|
|
"content": "hello",
|
|
"metadata": {"run_id": "run-1"},
|
|
"timestamp": now,
|
|
}
|
|
|
|
message = AgentChatMessage.model_validate(payload)
|
|
|
|
assert message.seq == 3
|
|
assert message.role == "assistant"
|
|
assert message.content == "hello"
|
|
assert message.metadata is not None
|
|
if isinstance(message.metadata, dict):
|
|
assert message.metadata == {"run_id": "run-1"}
|
|
else:
|
|
assert message.metadata.model_dump(exclude_none=True) == {"run_id": "run-1"}
|