claude-sonnet-5 review: Phase 5 (final) implemented by gpt-5.3-codex
Quality Gate / gate (push) Failing after 37s

This commit is contained in:
Jim Lancaster
2026-08-20 16:14:44 -05:00
parent 8b08478c9d
commit eaeb0bc806
12 changed files with 129 additions and 118 deletions
+33 -14
View File
@@ -1,8 +1,11 @@
from __future__ import annotations
from contextlib import asynccontextmanager
from typing import cast
import pytest
from sqlalchemy.ext.asyncio import async_sessionmaker
from sqlmodel.ext.asyncio.session import AsyncSession
from transcription.config import Settings
from transcription.services.base import ServiceBase
@@ -28,14 +31,22 @@ def _settings() -> Settings:
return Settings(_env_file=None, openrouter_api_key="test-key")
def _session_factory_stub() -> async_sessionmaker[AsyncSession]:
return cast(async_sessionmaker[AsyncSession], object())
def _session_stub() -> AsyncSession:
return cast(AsyncSession, object())
def test_initializes_with_defaults(monkeypatch):
settings = _settings()
session_factory = object()
session_factory = _session_factory_stub()
monkeypatch.setattr("transcription.services.base.get_settings", lambda: settings)
monkeypatch.setattr(
"transcription.services.base.resolve_session_factory",
lambda **kwargs: session_factory,
lambda **_kwargs: session_factory,
)
service = ServiceBase()
@@ -46,7 +57,7 @@ def test_initializes_with_defaults(monkeypatch):
def test_initializes_with_custom_session_factory():
settings = _settings()
session_factory = object()
session_factory = _session_factory_stub()
service = ServiceBase(settings=settings, session_factory=session_factory)
@@ -57,9 +68,9 @@ def test_initializes_with_custom_session_factory():
@pytest.mark.asyncio
async def test_session_scope_reuses_provided_session(monkeypatch):
captured: dict[str, object | None] = {}
provided_session = object()
yielded = object()
service = ServiceBase(settings=_settings(), session_factory=object())
provided_session = _session_stub()
yielded = _session_stub()
service = ServiceBase(settings=_settings(), session_factory=_session_factory_stub())
@asynccontextmanager
async def _fake_session_scope(*, session_factory=None, session=None):
@@ -78,8 +89,8 @@ async def test_session_scope_reuses_provided_session(monkeypatch):
@pytest.mark.asyncio
async def test_session_scope_creates_owned_session_when_none_provided(monkeypatch):
captured: dict[str, object | None] = {}
owned_session = object()
service = ServiceBase(settings=_settings(), session_factory=object())
owned_session = _session_stub()
service = ServiceBase(settings=_settings(), session_factory=_session_factory_stub())
@asynccontextmanager
async def _fake_session_scope(*, session_factory=None, session=None):
@@ -97,12 +108,12 @@ async def test_session_scope_creates_owned_session_when_none_provided(monkeypatc
@pytest.mark.asyncio
async def test_session_scope_propagates_exceptions(monkeypatch):
service = ServiceBase(settings=_settings(), session_factory=object())
service = ServiceBase(settings=_settings(), session_factory=_session_factory_stub())
@asynccontextmanager
async def _fake_session_scope(*, session_factory=None, session=None):
_ = (session_factory, session)
yield object()
yield _session_stub()
monkeypatch.setattr("transcription.services.base.session_scope", _fake_session_scope)
@@ -113,11 +124,15 @@ async def test_session_scope_propagates_exceptions(monkeypatch):
@pytest.mark.asyncio
async def test_finalize_commits_for_service_owned_session():
service = ServiceBase(settings=_settings(), session_factory=object())
service = ServiceBase(settings=_settings(), session_factory=_session_factory_stub())
session = _TrackingSession()
refreshed = object()
await service._finalize(session=session, caller_session=None, refresh=(refreshed,))
await service._finalize(
session=cast(AsyncSession, session),
caller_session=None,
refresh=(refreshed,),
)
assert session.commits == 1
assert session.flushes == 0
@@ -126,11 +141,15 @@ async def test_finalize_commits_for_service_owned_session():
@pytest.mark.asyncio
async def test_finalize_flushes_for_caller_owned_session():
service = ServiceBase(settings=_settings(), session_factory=object())
service = ServiceBase(settings=_settings(), session_factory=_session_factory_stub())
session = _TrackingSession()
refreshed = object()
await service._finalize(session=session, caller_session=object(), refresh=(refreshed,))
await service._finalize(
session=cast(AsyncSession, session),
caller_session=_session_stub(),
refresh=(refreshed,),
)
assert session.commits == 0
assert session.flushes == 1