Spaces:
Paused
Paused
File size: 3,642 Bytes
a5784e9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | """
High-quality tests for api_utils/utils_ext/validation.py (zero mocking).
Focus: Test real validation logic with no mocks, only pure function testing.
"""
import pytest
from models import Message
def test_validate_chat_request_valid():
"""
Test scenario: Valid chat request (containing user message)
Strategy: Pure function test, no mocking needed
"""
from api_utils.utils_ext.validation import validate_chat_request
messages = [Message(role="user", content="Hello")]
result = validate_chat_request(messages, req_id="req123")
assert result["error"] is None
assert result["warning"] is None
def test_validate_chat_request_with_system_and_user():
"""
Test scenario: Request containing system and user messages
Verify: Valid request
"""
from api_utils.utils_ext.validation import validate_chat_request
messages = [
Message(role="system", content="You are a helpful assistant."),
Message(role="user", content="Hello"),
]
result = validate_chat_request(messages, req_id="req456")
assert result["error"] is None
assert result["warning"] is None
def test_validate_chat_request_with_assistant_message():
"""
Test scenario: Conversation history containing assistant message
Verify: Valid request
"""
from api_utils.utils_ext.validation import validate_chat_request
messages = [
Message(role="user", content="What is 2+2?"),
Message(role="assistant", content="4"),
Message(role="user", content="Thanks!"),
]
result = validate_chat_request(messages, req_id="req789")
assert result["error"] is None
assert result["warning"] is None
def test_validate_chat_request_empty_messages():
"""
Test scenario: messages array is empty
Expected: Throw ValueError
"""
from api_utils.utils_ext.validation import validate_chat_request
with pytest.raises(ValueError, match="messages.*missing or empty"):
validate_chat_request(messages=[], req_id="req101")
def test_validate_chat_request_only_system_messages():
"""
Test scenario: Only system messages, no user or assistant messages
Expected: Throw ValueError
"""
from api_utils.utils_ext.validation import validate_chat_request
messages = [
Message(role="system", content="System prompt 1"),
Message(role="system", content="System prompt 2"),
]
with pytest.raises(ValueError, match="All messages are system messages"):
validate_chat_request(messages, req_id="req202")
def test_validate_chat_request_req_id_in_error_message():
"""
Test scenario: Verify error message contains req_id
Verify: Error tracking
"""
from api_utils.utils_ext.validation import validate_chat_request
try:
validate_chat_request(messages=[], req_id="req303")
pytest.fail("Expected ValueError")
except ValueError as e:
assert "[req303]" in str(e)
def test_validate_chat_request_mixed_messages_valid():
"""
Test scenario: Complex message history (mixed system, user, assistant)
Verify: Valid request
"""
from api_utils.utils_ext.validation import validate_chat_request
messages = [
Message(role="system", content="Context"),
Message(role="user", content="Question 1"),
Message(role="assistant", content="Answer 1"),
Message(role="system", content="Additional context"),
Message(role="user", content="Question 2"),
]
result = validate_chat_request(messages, req_id="req404")
assert result["error"] is None
assert result["warning"] is None
|