CheddahBot/tests/test_ui_helpers.py

54 lines
1.8 KiB
Python

"""Tests for UI helper functions."""
from __future__ import annotations
from cheddahbot.ui import _messages_to_chatbot
class TestMessagesToChatbot:
"""_messages_to_chatbot converts DB messages to Gradio chatbot format."""
def test_converts_user_and_assistant(self):
messages = [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi there"},
]
result = _messages_to_chatbot(messages)
assert result == [
{"role": "user", "content": "Hello"},
{"role": "assistant", "content": "Hi there"},
]
def test_skips_tool_messages(self):
messages = [
{"role": "user", "content": "Search for X"},
{"role": "assistant", "content": "Let me search..."},
{"role": "tool", "content": '{"results": []}'},
{"role": "assistant", "content": "Here are the results."},
]
result = _messages_to_chatbot(messages)
assert len(result) == 3
assert all(m["role"] in ("user", "assistant") for m in result)
def test_skips_empty_content(self):
messages = [
{"role": "user", "content": "Hi"},
{"role": "assistant", "content": ""},
{"role": "assistant", "content": "Real response"},
]
result = _messages_to_chatbot(messages)
assert len(result) == 2
assert result[1]["content"] == "Real response"
def test_empty_input(self):
assert _messages_to_chatbot([]) == []
def test_skips_system_messages(self):
messages = [
{"role": "system", "content": "You are a bot"},
{"role": "user", "content": "Hi"},
]
result = _messages_to_chatbot(messages)
assert len(result) == 1
assert result[0]["role"] == "user"