Coverage for src/tests/modules/teams/test_get_teams.py: 100%

24 statements  

« prev     ^ index     » next       coverage.py v7.11.0, created at 2024-01-01 00:00 +0000

1"""Module for defining tests for the use case 'Get Teams'.""" 

2 

3import pytest 

4 

5from kwai_bc_teams.domain.team import TeamEntity 

6from kwai_bc_teams.get_teams import GetTeams, GetTeamsCommand 

7from kwai_bc_teams.repositories.team_db_repository import TeamDbRepository 

8from kwai_core.db.database import Database 

9from kwai_core.domain.presenter import AsyncPresenter, IterableResult 

10 

11 

12pytestmark = pytest.mark.db 

13 

14 

15class DummyPresenter(AsyncPresenter[IterableResult[TeamEntity]]): 

16 """A dummy presenter for checking the use case result.""" 

17 

18 def __init__(self): 

19 super().__init__() 

20 self._count = 0 

21 

22 @property 

23 def count(self): 

24 """Return the count.""" 

25 return self._count 

26 

27 async def present(self, use_case_result: IterableResult[TeamEntity]) -> None: 

28 """Count the teams.""" 

29 async for _ in use_case_result.iterator: 

30 self._count += 1 

31 

32 

33async def test_get_teams(database: Database, make_team_in_db): 

34 """Test get teams.""" 

35 await make_team_in_db() 

36 command = GetTeamsCommand() 

37 presenter = DummyPresenter() 

38 await GetTeams(TeamDbRepository(database), presenter).execute(command) 

39 print(presenter.count) 

40 assert presenter.count > 0, "There should be at least one team."