haystack/test/preview/dataclasses/test_chat_message.py

48 lines
1.2 KiB
Python
Raw Normal View History

import pytest
from haystack.preview.dataclasses import ChatMessage, ChatRole
@pytest.mark.unit
def test_from_assistant_with_valid_content():
content = "Hello, how can I assist you?"
message = ChatMessage.from_assistant(content)
assert message.content == content
assert message.role == ChatRole.ASSISTANT
@pytest.mark.unit
def test_from_user_with_valid_content():
content = "I have a question."
message = ChatMessage.from_user(content)
assert message.content == content
assert message.role == ChatRole.USER
@pytest.mark.unit
def test_from_system_with_valid_content():
content = "System message."
message = ChatMessage.from_system(content)
assert message.content == content
assert message.role == ChatRole.SYSTEM
@pytest.mark.unit
def test_with_empty_content():
message = ChatMessage("", ChatRole.USER, None)
assert message.content == ""
@pytest.mark.unit
def test_with_invalid_role():
with pytest.raises(TypeError):
ChatMessage("Invalid role", "invalid_role")
@pytest.mark.unit
def test_from_function_with_empty_name():
content = "Function call"
message = ChatMessage.from_function(content, "")
assert message.content == content
assert message.name == ""