71 lines
2.1 KiB
Python
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
|