コード例 #1
0
ファイル: tests_siae.py プロジェクト: NathHense/itou
    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)
コード例 #2
0
ファイル: tests_siae.py プロジェクト: NathHense/itou
 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
コード例 #3
0
ファイル: tests.py プロジェクト: NathHense/itou
    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()
コード例 #4
0
ファイル: tests_siae.py プロジェクト: NathHense/itou
    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)
コード例 #5
0
ファイル: tests.py プロジェクト: NathHense/itou
    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)
コード例 #6
0
ファイル: tests.py プロジェクト: NathHense/itou
    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)
コード例 #7
0
ファイル: tests.py プロジェクト: NathHense/itou
    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)
コード例 #8
0
ファイル: tests_siae.py プロジェクト: NathHense/itou
    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)
コード例 #9
0
ファイル: tests_siae.py プロジェクト: NathHense/itou
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)