Files
XCClaw/tests/test_history.py

71 lines
2.1 KiB
Python

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