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

21 statements  

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

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

2 

3import pytest 

4 

5from kwai_bc_identity.update_user_invitation import ( 

6 UpdateUserInvitation, 

7 UpdateUserInvitationCommand, 

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_core.db.database import Database 

15from kwai_core.db.uow import UnitOfWork 

16from kwai_core.domain.presenter import EntityPresenter 

17from kwai_core.domain.value_objects.email_address import EmailAddress 

18from kwai_core.domain.value_objects.name import Name 

19 

20 

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

22 

23 

24async def test_update_user_invitation( 

25 database: Database, 

26 user: UserEntity, 

27 publisher, 

28 make_user_invitation, 

29 make_user_invitation_in_db, 

30): 

31 """Test recreate user invitation.""" 

32 user_invitation = await make_user_invitation_in_db( 

33 user_invitation=make_user_invitation( 

34 email=EmailAddress(email="anton.geesink@kwai.com"), 

35 name=Name(first_name="Anton", last_name="Geesink"), 

36 user=user, 

37 ) 

38 ) 

39 presenter = EntityPresenter[UserInvitationEntity]() 

40 

41 user_invitation_repo = UserInvitationDbRepository(database) 

42 async with UnitOfWork(database): 

43 await UpdateUserInvitation(user_invitation_repo, presenter).execute( 

44 UpdateUserInvitationCommand( 

45 uuid=str(user_invitation.uuid), 

46 revoked=True, 

47 remark="Changed with a test", 

48 ) 

49 ) 

50 assert presenter.entity is not None, "There should be a user invitation" 

51 assert presenter.entity.revoked is True, "User invitation should be revoked" 

52 

53 async with UnitOfWork(database): 

54 await user_invitation_repo.delete(presenter.entity)