Coverage for src/tests/fixtures/club/coaches.py: 100%
28 statements
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2024-01-01 00:00 +0000
1"""Module for defining fixtures for coaches."""
3import pytest
5from kwai_bc_club.domain.club_coach import ClubCoachEntity
6from kwai_bc_club.domain.member import MemberEntity
7from kwai_bc_club.repositories.coach_db_repository import CoachDbRepository
8from kwai_core.db.database import Database
9from kwai_core.db.uow import UnitOfWork
12@pytest.fixture
13def make_coach(make_member):
14 """A factory fixture for a coach."""
16 def _make_coach(
17 member: MemberEntity | None = None,
18 active: bool = True,
19 ) -> ClubCoachEntity:
20 member = member or make_member()
21 return ClubCoachEntity(member=member or make_member(), active=active)
23 return _make_coach
26@pytest.fixture
27async def make_coach_in_db(database: Database, make_coach, make_member_in_db):
28 """A factory fixture for a coach in a database."""
29 created_entities = []
31 async def _make_coach_in_db(
32 coach: ClubCoachEntity | None = None, member: MemberEntity | None = None
33 ):
34 member = member or await make_member_in_db()
35 coach = coach or make_coach(member=member)
37 repo = CoachDbRepository(database)
38 async with UnitOfWork(database):
39 coach_in_db = await repo.create(coach)
41 created_entities.append(coach_in_db)
43 return coach_in_db
45 yield _make_coach_in_db
47 repo = CoachDbRepository(database)
48 for entity in created_entities:
49 async with UnitOfWork(database):
50 await repo.delete(entity)