Coverage for src/tests/fixtures/teams/team_members.py: 100%
22 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 team members."""
3import pytest
5from kwai_bc_club.domain.member import MemberEntity as ClubMemberEntity
6from kwai_bc_teams.domain.team import TeamEntity
7from kwai_bc_teams.domain.team_member import MemberEntity, TeamMember
8from kwai_bc_teams.repositories.team_db_repository import TeamDbRepository
9from kwai_core.db.database import Database
10from kwai_core.domain.value_objects.traceable_time import TraceableTime
13@pytest.fixture
14def make_team_member(make_member):
15 """A factory fixture for a team member."""
17 def _make_team_member(member: ClubMemberEntity | None = None) -> TeamMember:
18 member = member or make_member()
19 return TeamMember(
20 active=True,
21 member=MemberEntity(
22 id=member.id,
23 uuid=member.uuid,
24 name=member.name,
25 license=member.license,
26 birthdate=member.person.birthdate,
27 nationality=member.person.nationality,
28 gender=member.person.gender,
29 ),
30 traceable_time=TraceableTime(),
31 )
33 return _make_team_member
36@pytest.fixture
37def make_team_member_in_db(
38 database: Database, make_team_member, make_member_in_db, make_team_in_db
39):
40 """A factory fixture for a team member in a database."""
42 async def _make_team_member_in_db(
43 member: MemberEntity | None = None, team: TeamEntity | None = None
44 ) -> TeamMember:
45 member = member or make_team_member(await make_member_in_db())
46 team = team or await make_team_in_db()
47 if team is not None:
48 await TeamDbRepository(database).add_team_member(team, member)
49 return member
51 return _make_team_member_in_db