Coverage for src/tests/modules/identity/test_revoke_user.py: 100%

24 statements  

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

1"""Module for testing the use case Revoke User.""" 

2 

3import pytest 

4 

5from kwai_bc_identity.revoke_user import RevokeUser, RevokeUserCommand 

6from kwai_bc_identity.tokens.user_token_db_repository import UserTokenDbRepository 

7from kwai_bc_identity.users.user_account import UserAccountEntity 

8from kwai_bc_identity.users.user_account_db_repository import ( 

9 UserAccountDbRepository, 

10) 

11from kwai_core.db.database import Database 

12from kwai_core.domain.presenter import Presenter 

13 

14 

15pytestmark = pytest.mark.db 

16 

17 

18class DummyPresenter(Presenter[UserAccountEntity]): 

19 """A dummy presenter for testing RevokeUser.""" 

20 

21 def __init__(self): 

22 self._entity = None 

23 

24 def present(self, use_case_result: UserAccountEntity) -> None: 

25 self._entity = use_case_result 

26 

27 @property 

28 def entity(self) -> UserAccountEntity: 

29 """Return the entity returned by the use case.""" 

30 return self._entity 

31 

32 

33async def test_revoke_user(database: Database, make_user_account_in_db): 

34 """Test the revoke user use case.""" 

35 user_account_in_db = await make_user_account_in_db() 

36 

37 user_account_repo = UserAccountDbRepository(database) 

38 user_token_repo = UserTokenDbRepository(database) 

39 command = RevokeUserCommand(uuid=str(user_account_in_db.user.uuid)) 

40 presenter = DummyPresenter() 

41 

42 await RevokeUser(user_account_repo, user_token_repo, presenter).execute(command) 

43 

44 assert presenter.entity.revoked is True, "The user account should be revoked"