Coverage for src/tests/modules/club/test_get_member.py: 100%

26 statements  

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

1"""Module for testing the use case 'Get Member'.""" 

2 

3import pytest 

4 

5from kwai_bc_club.domain.member import MemberEntity 

6from kwai_bc_club.get_member import GetMember, GetMemberCommand 

7from kwai_bc_club.repositories.member_db_repository import MemberDbRepository 

8from kwai_bc_club.repositories.member_repository import MemberRepository 

9from kwai_core.db.database import Database 

10from kwai_core.domain.presenter import Presenter 

11 

12 

13class DummyPresenter(Presenter[MemberEntity]): 

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

15 

16 def __init__(self): 

17 super().__init__() 

18 self._entity = None 

19 

20 @property 

21 def entity(self): 

22 """Return the entity.""" 

23 return self._entity 

24 

25 def present(self, use_case_result: MemberEntity) -> None: 

26 """Process the result of the use case.""" 

27 self._entity = use_case_result 

28 

29 

30@pytest.fixture 

31def member_repo(database: Database) -> MemberRepository: 

32 """A fixture for a member repository.""" 

33 return MemberDbRepository(database) 

34 

35 

36async def test_get_member(member_repo: MemberRepository, make_member_in_db): 

37 """Test the get member use case.""" 

38 member = await make_member_in_db() 

39 presenter = DummyPresenter() 

40 command = GetMemberCommand(uuid=str(member.uuid)) 

41 await GetMember(member_repo, presenter).execute(command) 

42 assert presenter.entity is not None, "The member should exist" 

43 assert presenter.entity.uuid == member.uuid, "The member should be found"