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
« 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."""
3import pytest
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
15pytestmark = pytest.mark.db
18class DummyPresenter(Presenter[UserAccountEntity]):
19 """A dummy presenter for testing RevokeUser."""
21 def __init__(self):
22 self._entity = None
24 def present(self, use_case_result: UserAccountEntity) -> None:
25 self._entity = use_case_result
27 @property
28 def entity(self) -> UserAccountEntity:
29 """Return the entity returned by the use case."""
30 return self._entity
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()
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()
42 await RevokeUser(user_account_repo, user_token_repo, presenter).execute(command)
44 assert presenter.entity.revoked is True, "The user account should be revoked"