buzz/tests/conftest.py
2024-03-14 01:51:06 +00:00

40 lines
1.1 KiB
Python

import os
import pytest
from PyQt6.QtSql import QSqlDatabase
from _pytest.fixtures import SubRequest
from buzz.db.dao.transcription_dao import TranscriptionDAO
from buzz.db.dao.transcription_segment_dao import TranscriptionSegmentDAO
from buzz.db.db import setup_test_db
from buzz.db.service.transcription_service import TranscriptionService
@pytest.fixture()
def db() -> QSqlDatabase:
db = setup_test_db()
yield db
db.close()
os.remove(db.databaseName())
@pytest.fixture()
def transcription_dao(db, request: SubRequest) -> TranscriptionDAO:
dao = TranscriptionDAO(db)
if hasattr(request, "param"):
transcriptions = request.param
for transcription in transcriptions:
dao.insert(transcription)
return dao
@pytest.fixture()
def transcription_service(
transcription_dao, transcription_segment_dao
) -> TranscriptionService:
return TranscriptionService(transcription_dao, transcription_segment_dao)
@pytest.fixture()
def transcription_segment_dao(db) -> TranscriptionSegmentDAO:
return TranscriptionSegmentDAO(db)