Files
MediaManager/tests/indexer/test_repository.py
2025-06-08 17:51:47 +02:00

64 lines
1.5 KiB
Python

import uuid
import pytest
from media_manager.indexer.schemas import IndexerQueryResult, IndexerQueryResultId
from media_manager.indexer.repository import IndexerRepository
class DummyDB:
def __init__(self):
self._storage = {}
self.added = []
self.committed = False
def get(self, model, result_id):
return self._storage.get(result_id)
def add(self, obj):
self.added.append(obj)
self._storage[obj.id] = obj
def commit(self):
self.committed = True
@pytest.fixture
def dummy_db():
return DummyDB()
@pytest.fixture
def repo(dummy_db):
return IndexerRepository(db=dummy_db)
def test_save_and_get_result(repo, dummy_db):
result_id = IndexerQueryResultId(uuid.uuid4())
result = IndexerQueryResult(
id=result_id,
title="Test Title",
download_url="http://example.com",
seeders=5,
flags=["flag1"],
size=1234,
)
saved = repo.save_result(result)
assert saved == result
assert dummy_db.committed
fetched = repo.get_result(result_id)
assert fetched.id == result_id
assert fetched.title == "Test Title"
def test_save_result_calls_db_methods(repo, dummy_db):
result = IndexerQueryResult(
id=IndexerQueryResultId(uuid.uuid4()),
title="Another Title",
download_url="http://example.com/2",
seeders=2,
flags=[],
size=5678,
)
repo.save_result(result)
assert dummy_db.added[0].title == "Another Title"
assert dummy_db.committed