diff --git a/tests/integration/factories.py b/tests/integration/factories.py index 0138d15..cf874f5 100644 --- a/tests/integration/factories.py +++ b/tests/integration/factories.py @@ -14,13 +14,15 @@ from app.models.genre import Genre, MovieGenre from app.models.movie import Movie from app.models.person import Person from app.models.provider import Provider +from app.repositories.provider_repository import get_or_create_provider async def make_provider(session: AsyncSession, slug: str = "tmdb") -> Provider: - provider = Provider(slug=slug, name=slug.upper()) - session.add(provider) - await session.flush() - return provider + # get_or_create, not a raw insert: some tests (e.g. the ingestion + # cascade ones) create a real "tmdb" Provider row via session_scope()'s + # own connection, outside this test's rolled-back transaction, so it + # can already exist here regardless of db_session's per-test isolation. + return await get_or_create_provider(session, slug, slug.upper()) async def make_movie(