feat: 添加任务历史记录、持久化会话、WebSocket支持和数据持久化功能
This commit is contained in:
70
tests/test_history.py
Normal file
70
tests/test_history.py
Normal file
@@ -0,0 +1,70 @@
|
||||
import pytest
|
||||
from datetime import datetime
|
||||
from app.models.session import SessionType, TaskStatus, Task
|
||||
from app.services.history import HistoryService, history_service
|
||||
|
||||
|
||||
class TestHistoryService:
|
||||
@pytest.fixture(autouse=True)
|
||||
def setup(self, mock_settings, monkeypatch):
|
||||
from app.services import storage
|
||||
self.storage = storage.storage
|
||||
self.history = history_service
|
||||
self.history._history = []
|
||||
|
||||
def test_add_task_history(self):
|
||||
task = Task(
|
||||
id="task-1",
|
||||
type=SessionType.EPHEMERAL,
|
||||
prompt="test prompt",
|
||||
status=TaskStatus.COMPLETED,
|
||||
created_at=datetime.now(),
|
||||
finished_at=datetime.now()
|
||||
)
|
||||
|
||||
self.history.add_task_history(task)
|
||||
|
||||
assert len(self.history._history) == 1
|
||||
assert self.history._history[0]["id"] == "task-1"
|
||||
|
||||
def test_get_history(self):
|
||||
for i in range(5):
|
||||
task = Task(
|
||||
id=f"task-{i}",
|
||||
type=SessionType.EPHEMERAL,
|
||||
prompt=f"prompt {i}",
|
||||
status=TaskStatus.COMPLETED,
|
||||
created_at=datetime.now()
|
||||
)
|
||||
self.history.add_task_history(task)
|
||||
|
||||
history = self.history.get_history()
|
||||
assert len(history) == 5
|
||||
|
||||
def test_get_history_with_limit(self):
|
||||
for i in range(10):
|
||||
task = Task(
|
||||
id=f"task-{i}",
|
||||
type=SessionType.EPHEMERAL,
|
||||
prompt=f"prompt {i}",
|
||||
status=TaskStatus.COMPLETED,
|
||||
created_at=datetime.now()
|
||||
)
|
||||
self.history.add_task_history(task)
|
||||
|
||||
history = self.history.get_history(limit=3)
|
||||
assert len(history) == 3
|
||||
|
||||
def test_clear_history(self):
|
||||
task = Task(
|
||||
id="task-1",
|
||||
type=SessionType.EPHEMERAL,
|
||||
prompt="test",
|
||||
status=TaskStatus.COMPLETED,
|
||||
created_at=datetime.now()
|
||||
)
|
||||
self.history.add_task_history(task)
|
||||
|
||||
self.history.clear_history()
|
||||
|
||||
assert len(self.history._history) == 0
|
||||
Reference in New Issue
Block a user