fix: improve session management and testing infrastructure

- Split get_session into _get_session and get_session to facilitate test mocking
- Add autouse fixture to ensure db_session is properly injected in tests
- Fix generate_waveform method to accept session parameter explicitly
This commit is contained in:
2025-09-23 23:39:24 -06:00
parent 2aa99fe846
commit 27f19ec6ba
3 changed files with 19 additions and 6 deletions

View File

@@ -13,6 +13,7 @@ from pathlib import Path
import av
import structlog
from celery import chain, shared_task
from sqlalchemy.ext.asyncio import AsyncSession
from reflector.asynctask import asynctask
from reflector.db import get_session_factory
@@ -317,12 +318,9 @@ class PipelineMainFile(PipelineMainBase):
self.logger.error(f"Diarization failed: {e}")
return None
async def generate_waveform(self, audio_path: Path):
async def generate_waveform(self, session: AsyncSession, audio_path: Path):
"""Generate and save waveform"""
async with get_session_factory()() as session:
transcript = await transcripts_controller.get_by_id(
session, self.transcript_id
)
transcript = await transcripts_controller.get_by_id(session, self.transcript_id)
processor = AudioWaveformProcessor(
audio_path=audio_path,