Fixed internal file path translation into docker
This commit is contained in:
64
tests/test_conversation_missing_files.py
Normal file
64
tests/test_conversation_missing_files.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
Test conversation memory handling of missing files.
|
||||
|
||||
Following existing test patterns to ensure conversation memory gracefully
|
||||
handles missing files without crashing.
|
||||
"""
|
||||
|
||||
from unittest.mock import Mock
|
||||
|
||||
from utils.conversation_memory import (
|
||||
ConversationTurn,
|
||||
ThreadContext,
|
||||
build_conversation_history,
|
||||
)
|
||||
|
||||
|
||||
class TestConversationMissingFiles:
|
||||
"""Test handling of missing files during conversation memory reconstruction."""
|
||||
|
||||
def test_build_conversation_history_handles_missing_files(self):
|
||||
"""Test that conversation history building handles missing files gracefully."""
|
||||
|
||||
# Create conversation context with missing file reference (following existing test patterns)
|
||||
context = ThreadContext(
|
||||
thread_id="test-thread",
|
||||
created_at="2024-01-01T00:00:00Z",
|
||||
last_updated_at="2024-01-01T00:05:00Z",
|
||||
tool_name="analyze",
|
||||
turns=[
|
||||
ConversationTurn(
|
||||
role="user",
|
||||
content="Please analyze this file",
|
||||
timestamp="2024-01-01T00:01:00Z",
|
||||
files=["/nonexistent/missing_file.py"], # File that doesn't exist
|
||||
tool_name="analyze",
|
||||
),
|
||||
ConversationTurn(
|
||||
role="assistant",
|
||||
content="Here's my analysis...",
|
||||
timestamp="2024-01-01T00:02:00Z",
|
||||
tool_name="analyze",
|
||||
),
|
||||
],
|
||||
initial_context={"path": "/nonexistent/missing_file.py"},
|
||||
)
|
||||
|
||||
# Mock model context (following existing test patterns)
|
||||
mock_model_context = Mock()
|
||||
mock_model_context.calculate_token_allocation.return_value = Mock(file_tokens=50000, history_tokens=50000)
|
||||
mock_model_context.estimate_tokens.return_value = 100
|
||||
mock_model_context.model_name = "test-model"
|
||||
|
||||
# Should not crash, should handle missing file gracefully
|
||||
history, tokens = build_conversation_history(context, mock_model_context)
|
||||
|
||||
# Should return valid history despite missing file
|
||||
assert isinstance(history, str)
|
||||
assert isinstance(tokens, int)
|
||||
assert len(history) > 0
|
||||
|
||||
# Should contain conversation content
|
||||
assert "CONVERSATION HISTORY" in history
|
||||
assert "Please analyze this file" in history
|
||||
assert "Here's my analysis" in history
|
||||
Reference in New Issue
Block a user