30 lines
837 B
Python
30 lines
837 B
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from datetime import UTC, datetime
|
||
|
|
from uuid import uuid4
|
||
|
|
|
||
|
|
from schemas.messages.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"}
|