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

1"""Module for testing the recreation of a user invitation use case.""" 

2 

3import pytest 

4 

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 

20 

21 

22pytestmark = [pytest.mark.db, pytest.mark.bus] 

23 

24 

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]() 

41 

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" 

52 

53 async with UnitOfWork(database): 

54 await user_invitation_repo.delete(presenter.entity) 

55 

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"