Coverage for src/tests/fixtures/teams/teams.py: 100%
26 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 factory fixtures for teams."""
3import pytest
5from kwai_bc_teams.domain.team import TeamEntity, TeamMembers
6from kwai_bc_teams.repositories.team_db_repository import TeamDbRepository
7from kwai_core.db.database import Database
8from kwai_core.db.uow import UnitOfWork
11@pytest.fixture
12def make_team():
13 """A factory fixture for creating a team."""
15 def _make_team(
16 name: str | None = None, members: TeamMembers | None = None
17 ) -> TeamEntity:
18 members = members or TeamMembers()
19 return TeamEntity(name=name or "U11", members=members)
21 return _make_team
24@pytest.fixture
25async def make_team_in_db(request, database: Database, make_team):
26 """A factory fixture for creating a team in database."""
27 created_entities = []
29 async def _make_team_in_db(team: TeamEntity | None = None) -> TeamEntity:
30 team = team or make_team()
32 repo = TeamDbRepository(database)
33 async with UnitOfWork(database):
34 team = await repo.create(team)
35 created_entities.append(team)
37 return team
39 yield _make_team_in_db
41 repo = TeamDbRepository(database)
42 for entity in created_entities:
43 async with UnitOfWork(database):
44 await repo.delete(entity)