Coverage for src/tests/modules/teams/test_get_members.py: 100%
32 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 testing the use case 'Get Team Members'."""
3import pytest
5from kwai_bc_teams.domain.team_member import MemberEntity
6from kwai_bc_teams.get_members import GetMembers, GetMembersCommand
7from kwai_bc_teams.repositories.member_db_repository import MemberDbRepository
8from kwai_core.db.database import Database
9from kwai_core.domain.presenter import AsyncPresenter, IterableResult
12pytestmark = pytest.mark.db
15class DummyPresenter(AsyncPresenter[IterableResult[MemberEntity]]):
16 """A dummy presenter for checking the use case result."""
18 def __init__(self):
19 super().__init__()
20 self._count = 0
22 @property
23 def count(self):
24 """Return the count."""
25 return self._count
27 async def present(self, use_case_result: IterableResult[MemberEntity]) -> None:
28 """Count the number of members."""
29 async for _ in use_case_result.iterator:
30 self._count += 1
33@pytest.fixture
34def team_member_presenter() -> DummyPresenter:
35 """A fixture for a team member presenter."""
36 return DummyPresenter()
39async def test_get_members_not_in_team(
40 database: Database, make_team_in_db, make_member_in_db, team_member_presenter
41):
42 """Test get team members."""
43 team = await make_team_in_db()
44 await make_member_in_db()
45 command = GetMembersCommand(team_id=team.id.value, in_team=False)
46 await GetMembers(MemberDbRepository(database), team_member_presenter).execute(
47 command
48 )
49 assert team_member_presenter.count > 0
52async def test_get_members_in_team(
53 database: Database, make_team_in_db, make_team_member_in_db, team_member_presenter
54):
55 """Test get team members from a team."""
56 team = await make_team_in_db()
57 await make_team_member_in_db(team=team)
58 command = GetMembersCommand(team_id=team.id.value)
59 await GetMembers(MemberDbRepository(database), team_member_presenter).execute(
60 command
61 )
62 assert team_member_presenter.count == 1