mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
"""Coverage for roboco.api.schemas.messages helpers."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import UTC, datetime
|
|
from types import SimpleNamespace
|
|
from uuid import uuid4
|
|
|
|
from roboco.api.schemas.messages import message_to_response
|
|
|
|
|
|
def _stub_message(*, edit_history: list | None = None, edited_at=None):
|
|
"""Build a MessageTable-shaped object."""
|
|
return SimpleNamespace(
|
|
id=uuid4(),
|
|
agent_id=uuid4(),
|
|
channel_id=uuid4(),
|
|
group_id=uuid4(),
|
|
session_id=uuid4(),
|
|
type="dialogue",
|
|
content="hello",
|
|
content_length=5,
|
|
is_reply=False,
|
|
reply_to=None,
|
|
mentions=[],
|
|
task_id=None,
|
|
commit_ref=None,
|
|
timestamp=datetime.now(UTC),
|
|
edited_at=edited_at,
|
|
edit_history=edit_history,
|
|
)
|
|
|
|
|
|
def test_message_to_response_was_edited_true_when_history_present() -> None:
|
|
"""Lines 100-101: was_edited is None and edit_history non-empty → True."""
|
|
msg = _stub_message(edit_history=[{"old": "x"}])
|
|
response = message_to_response(msg)
|
|
assert response.was_edited is True
|
|
|
|
|
|
def test_message_to_response_was_edited_false_when_no_history() -> None:
|
|
msg = _stub_message(edit_history=None)
|
|
response = message_to_response(msg)
|
|
assert response.was_edited is False
|
|
|
|
|
|
def test_message_to_response_explicit_was_edited_overrides() -> None:
|
|
msg = _stub_message(edit_history=None)
|
|
response = message_to_response(msg, was_edited=True)
|
|
assert response.was_edited is True
|