def test_accept_existing_user_not_logged_in(self): self.user = SiaeWith2MembershipsFactory().members.first() # The user verified its email EmailAddress(user_id=self.user.pk, email=self.user.email, verified=True, primary=True).save() self.invitation = SiaeSentInvitationFactory( sender=self.sender, siae=self.siae, first_name=self.user.first_name, last_name=self.user.last_name, email=self.user.email, ) response = self.client.get(self.invitation.acceptance_link, follow=True) self.assertIn(reverse("account_login"), response.wsgi_request.get_full_path()) self.assertFalse(self.invitation.accepted) self.response = self.client.post( response.wsgi_request.get_full_path(), data={ "login": self.user.email, "password": DEFAULT_PASSWORD }, follow=True, ) self.assertTrue(self.response.wsgi_request.user.is_authenticated)
def setUp(self): self.siae = SiaeWith2MembershipsFactory() self.sender = self.siae.members.first() self.invitation = SiaeSentInvitationFactory(sender=self.sender, siae=self.siae) self.user = get_user_model() self.response = None
def test_add_member_to_siae(self): invitation = SiaeSentInvitationFactory(email="*****@*****.**") user = UserFactory(email=invitation.email) siae_members = invitation.siae.members.count() invitation.add_invited_user_to_siae() siae_members_after = invitation.siae.members.count() self.assertEqual(siae_members + 1, siae_members_after) user.refresh_from_db()
def test_accept_existing_user_is_employer(self): self.user = SiaeWith2MembershipsFactory().members.first() self.invitation = SiaeSentInvitationFactory( sender=self.sender, siae=self.siae, first_name=self.user.first_name, last_name=self.user.last_name, email=self.user.email, ) self.client.login(email=self.user.email, password=DEFAULT_PASSWORD) self.response = self.client.get(self.invitation.acceptance_link, follow=True) current_siae = get_current_siae_or_404(self.response.wsgi_request) self.assertEqual(self.invitation.siae.pk, current_siae.pk)
def test_accepted_notif_siae_members(self): user = UserFactory() invitation = SiaeSentInvitationFactory(email=user.email) invitation.siae.members.add(user) email = invitation.email_accepted_notif_siae_members # Subject self.assertIn(invitation.first_name, email.subject) self.assertIn(invitation.last_name, email.subject) # Body self.assertIn(invitation.first_name, email.body) self.assertIn(invitation.last_name, email.body) self.assertIn(invitation.email, email.body) self.assertIn(invitation.sender.first_name, email.body) self.assertIn(invitation.sender.last_name, email.body) self.assertIn(invitation.siae.display_name, email.body) # To members = invitation.siae.members.exclude( email__in=[invitation.sender.email, invitation.email]) for member in members: self.assertIn(member.email, email.to) self.assertNotIn(invitation.sender.email, email.to) self.assertNotIn(invitation.email, email.to)
def test_email_invitation(self): invitation = SiaeSentInvitationFactory() email = invitation.email_invitation # Subject self.assertIn(invitation.siae.display_name, email.subject) # Body self.assertIn(invitation.first_name, email.body) self.assertIn(invitation.last_name, email.body) self.assertIn(invitation.acceptance_link, email.body) self.assertIn(invitation.siae.display_name, email.body) # To self.assertIn(invitation.email, email.to)
def test_accepted_notif_sender(self): invitation = SiaeSentInvitationFactory() email = invitation.email_accepted_notif_sender # Subject self.assertIn(invitation.first_name, email.subject) self.assertIn(invitation.last_name, email.subject) # Body self.assertIn(invitation.first_name, email.body) self.assertIn(invitation.last_name, email.body) self.assertIn(invitation.email, email.body) self.assertIn(invitation.siae.display_name, email.body) # To self.assertIn(invitation.sender.email, email.to)
def test_accept_existing_user_is_not_employer(self): self.user = PrescriberOrganizationWithMembershipFactory( ).members.first() self.invitation = SiaeSentInvitationFactory( sender=self.sender, siae=self.siae, first_name=self.user.first_name, last_name=self.user.last_name, email=self.user.email, ) self.client.login(email=self.user.email, password=DEFAULT_PASSWORD) response = self.client.get(self.invitation.acceptance_link, follow=True) self.assertEqual(response.status_code, 403) self.assertFalse(self.invitation.accepted)
class TestAcceptSiaeInvitation(TestCase): def setUp(self): self.siae = SiaeWith2MembershipsFactory() self.sender = self.siae.members.first() self.invitation = SiaeSentInvitationFactory(sender=self.sender, siae=self.siae) self.user = get_user_model() self.response = None def tearDown(self): self.assertEqual(self.response.status_code, 200) self.user.refresh_from_db() self.invitation.refresh_from_db() self.assertTrue(self.user.is_siae_staff) self.assertTrue(self.invitation.accepted) self.assertTrue(self.invitation.accepted_at) self.assertEqual(self.siae.members.count(), 3) self.assertEqual(reverse("dashboard:index"), self.response.wsgi_request.path) # Make sure there's a welcome message. messages = list(get_messages(self.response.wsgi_request)) self.assertEqual(len(messages), 1) self.assertEqual(messages[0].level_tag, "success") # Two e-mails are sent: one to the invitation sender # and a second one to the SIAE members. self.assertEqual(len(mail.outbox), 2) # Make sure an email is sent to the invitation sender outbox_emails = [ receiver for message in mail.outbox for receiver in message.to ] self.assertIn(self.invitation.sender.email, outbox_emails) def test_accept_siae_invitation(self): response = self.client.get(self.invitation.acceptance_link, follow=True) self.assertIn(response.wsgi_request.path, self.invitation.acceptance_link) form_data = { "first_name": self.invitation.first_name, "last_name": self.invitation.last_name, "password1": "Erls92#32", "password2": "Erls92#32", } self.response = self.client.post(self.invitation.acceptance_link, data=form_data, follow=True) self.user = get_user_model().objects.get(email=self.invitation.email) def test_accept_existing_user_is_employer(self): self.user = SiaeWith2MembershipsFactory().members.first() self.invitation = SiaeSentInvitationFactory( sender=self.sender, siae=self.siae, first_name=self.user.first_name, last_name=self.user.last_name, email=self.user.email, ) self.client.login(email=self.user.email, password=DEFAULT_PASSWORD) self.response = self.client.get(self.invitation.acceptance_link, follow=True) current_siae = get_current_siae_or_404(self.response.wsgi_request) self.assertEqual(self.invitation.siae.pk, current_siae.pk) def test_accept_existing_user_not_logged_in(self): self.user = SiaeWith2MembershipsFactory().members.first() # The user verified its email EmailAddress(user_id=self.user.pk, email=self.user.email, verified=True, primary=True).save() self.invitation = SiaeSentInvitationFactory( sender=self.sender, siae=self.siae, first_name=self.user.first_name, last_name=self.user.last_name, email=self.user.email, ) response = self.client.get(self.invitation.acceptance_link, follow=True) self.assertIn(reverse("account_login"), response.wsgi_request.get_full_path()) self.assertFalse(self.invitation.accepted) self.response = self.client.post( response.wsgi_request.get_full_path(), data={ "login": self.user.email, "password": DEFAULT_PASSWORD }, follow=True, ) self.assertTrue(self.response.wsgi_request.user.is_authenticated)