Coverage for src/tests/modules/identity/test_recreate_user_invitation.py: 100%
23 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 recreation of a user invitation use case."""
3import pytest
5from kwai_bc_identity.recreate_user_invitation import (
6 RecreateUserInvitation,
7 RecreateUserInvitationCommand,
8)
9from kwai_bc_identity.user_invitations.user_invitation import UserInvitationEntity
10from kwai_bc_identity.user_invitations.user_invitation_db_repository import (
11 UserInvitationDbRepository,
12)
13from kwai_bc_identity.users.user import UserEntity
14from kwai_bc_identity.users.user_db_repository import UserDbRepository
15from kwai_core.db.database import Database
16from kwai_core.db.uow import UnitOfWork
17from kwai_core.domain.presenter import EntityPresenter
18from kwai_core.domain.value_objects.email_address import EmailAddress
19from kwai_core.domain.value_objects.name import Name
22pytestmark = [pytest.mark.db, pytest.mark.bus]
25async def test_recreate_user_invitation(
26 database: Database,
27 user: UserEntity,
28 publisher,
29 make_user_invitation,
30 make_user_invitation_in_db,
31):
32 """Test recreate user invitation."""
33 user_invitation = await make_user_invitation_in_db(
34 user_invitation=make_user_invitation(
35 email=EmailAddress(email="anton.geesink@kwai.com"),
36 name=Name(first_name="Anton", last_name="Geesink"),
37 user=user,
38 )
39 )
40 presenter = EntityPresenter[UserInvitationEntity]()
42 user_invitation_repo = UserInvitationDbRepository(database)
43 async with UnitOfWork(database):
44 await RecreateUserInvitation(
45 user,
46 UserDbRepository(database),
47 user_invitation_repo,
48 presenter,
49 publisher,
50 ).execute(RecreateUserInvitationCommand(uuid=str(user_invitation.uuid)))
51 assert presenter.entity is not None, "There should be a user invitation"
53 async with UnitOfWork(database):
54 await user_invitation_repo.delete(presenter.entity)
56 old_user_invitation = await user_invitation_repo.get_invitation_by_id(
57 user_invitation.id
58 )
59 assert old_user_invitation.revoked, "Old user invitation should be revoked"