Files
webmanager-mvp/webui/backend/tests/unit/test_history_repository.py
T
2026-03-12 07:32:44 +01:00

51 lines
1.6 KiB
Python

from __future__ import annotations
import tempfile
import unittest
from pathlib import Path
from backend.app.db.history_repository import HistoryRepository
class HistoryRepositoryTest(unittest.TestCase):
def setUp(self) -> None:
self.temp_dir = tempfile.TemporaryDirectory()
self.repo = HistoryRepository(str(Path(self.temp_dir.name) / 'history.db'))
def tearDown(self) -> None:
self.temp_dir.cleanup()
def test_list_history_sorted_created_at_desc(self) -> None:
self.repo.insert_entry_for_testing(
{
'id': 'old',
'operation': 'mkdir',
'status': 'completed',
'source': None,
'destination': None,
'path': 'storage1/old',
'error_code': None,
'error_message': None,
'created_at': '2026-03-10T10:00:00Z',
'finished_at': '2026-03-10T10:00:00Z',
}
)
self.repo.insert_entry_for_testing(
{
'id': 'new',
'operation': 'move',
'status': 'failed',
'source': 'storage1/a.txt',
'destination': 'storage1/b.txt',
'path': None,
'error_code': 'io_error',
'error_message': 'failed',
'created_at': '2026-03-10T10:01:00Z',
'finished_at': '2026-03-10T10:01:01Z',
}
)
items = self.repo.list_history(limit=100)
self.assertEqual([item['id'] for item in items], ['new', 'old'])