예제 #1
0
    def test_simple(self, mock_record):
        provider = "dummy"
        request = RequestFactory().post("/auth/sso/")
        request.user = AnonymousUser()

        auth_provider = AuthProvider.objects.create(
            organization=self.organization, provider=provider)
        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        auth_identity = handle_new_user(auth_provider, self.organization,
                                        request, identity)
        user = auth_identity.user

        assert user.email == identity["email"]
        assert OrganizationMember.objects.filter(
            organization=self.organization, user=user).exists()

        signup_record = [
            r for r in mock_record.call_args_list if r[0][0] == "user.signup"
        ]
        assert signup_record == [
            mock.call("user.signup",
                      user_id=user.id,
                      source="sso",
                      provider=provider,
                      referrer="in-app")
        ]
예제 #2
0
    def test_associate_pending_invite(self):
        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")
        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        # The org member invite should have a non matching email, but the
        # member id and token will match from the cookie, allowing association
        member = OrganizationMember.objects.create(
            organization=self.organization,
            email="*****@*****.**",
            token="abc")

        request = RequestFactory().post("/auth/sso/")
        request.user = AnonymousUser()
        request.COOKIES["pending-invite"] = urlencode({
            "memberId": member.id,
            "token": member.token,
            "url": ""
        })

        auth_identity = handle_new_user(provider, self.organization, request,
                                        identity)

        assigned_member = OrganizationMember.objects.get(
            organization=self.organization, user=auth_identity.user)

        assert assigned_member.id == member.id
예제 #3
0
    def test_associated_member_invite(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(
            organization=self.organization,
            provider='dummy',
        )

        identity = {
            'id': '1234',
            'email': '*****@*****.**',
            'name': 'Morty',
        }

        OrganizationMember.objects.create(
            organization=self.organization,
            email=identity['email'],
        )

        auth_identity = handle_new_user(provider, self.organization, None,
                                        identity)

        assert not mock_handle_new_membership.called
        assert OrganizationMember.objects.filter(
            organization=self.organization,
            user=auth_identity.user,
        ).exists()
예제 #4
0
    def test_simple(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")

        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        auth_identity = handle_new_user(provider, self.organization, None,
                                        identity)

        assert mock_handle_new_membership.called
        assert auth_identity.user.email == identity["email"]
예제 #5
0
    def test_simple(self):
        request = RequestFactory().post("/auth/sso/")
        request.user = AnonymousUser()

        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")
        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        auth_identity = handle_new_user(provider, self.organization, request,
                                        identity)

        assert auth_identity.user.email == identity["email"]
        assert OrganizationMember.objects.filter(
            organization=self.organization, user=auth_identity.user).exists()
예제 #6
0
    def test_associated_member_invite(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")

        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        OrganizationMember.objects.create(organization=self.organization,
                                          email=identity["email"])

        auth_identity = handle_new_user(provider, self.organization, None,
                                        identity)

        assert not mock_handle_new_membership.called
        assert OrganizationMember.objects.filter(
            organization=self.organization, user=auth_identity.user).exists()
예제 #7
0
파일: test_helper.py 프로젝트: yaoqi/sentry
    def test_simple(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(
            organization=self.organization,
            provider='dummy',
        )

        identity = {
            'id': '1234',
            'email': '*****@*****.**',
            'name': 'Morty',
        }

        auth_identity = handle_new_user(provider, self.organization, None, identity)

        assert mock_handle_new_membership.called
        assert auth_identity.user.email == identity['email']
예제 #8
0
    def test_simple(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(
            organization=self.organization,
            provider='dummy',
        )

        identity = {
            'id': '1234',
            'email': '*****@*****.**',
            'name': 'Morty',
        }

        auth_identity = handle_new_user(provider, self.organization, None,
                                        identity)

        assert mock_handle_new_membership.called
        assert auth_identity.user.email == identity['email']
예제 #9
0
    def test_associated_existing_member_invite_by_email(self):
        request = RequestFactory().post("/auth/sso/")
        request.user = AnonymousUser()

        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")
        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        member = OrganizationMember.objects.create(
            organization=self.organization, email=identity["email"])

        auth_identity = handle_new_user(provider, self.organization, request,
                                        identity)

        assigned_member = OrganizationMember.objects.get(
            organization=self.organization, user=auth_identity.user)

        assert assigned_member.id == member.id
예제 #10
0
    def test_associated_existing_member_invite_request(self):
        request = RequestFactory().post("/auth/sso/")
        request.user = AnonymousUser()

        provider = AuthProvider.objects.create(organization=self.organization,
                                               provider="dummy")
        identity = {"id": "1234", "email": "*****@*****.**", "name": "Morty"}

        member = self.create_member(
            organization=self.organization,
            email=identity["email"],
            invite_status=InviteStatus.REQUESTED_TO_BE_INVITED.value,
        )

        auth_identity = handle_new_user(provider, self.organization, request,
                                        identity)

        assert OrganizationMember.objects.filter(
            organization=self.organization,
            user=auth_identity.user,
            invite_status=InviteStatus.APPROVED.value,
        ).exists()

        assert not OrganizationMember.objects.filter(id=member.id).exists()
예제 #11
0
파일: test_helper.py 프로젝트: yaoqi/sentry
    def test_associated_member_invite(self, mock_handle_new_membership):
        provider = AuthProvider.objects.create(
            organization=self.organization,
            provider='dummy',
        )

        identity = {
            'id': '1234',
            'email': '*****@*****.**',
            'name': 'Morty',
        }

        OrganizationMember.objects.create(
            organization=self.organization,
            email=identity['email'],
        )

        auth_identity = handle_new_user(provider, self.organization, None, identity)

        assert not mock_handle_new_membership.called
        assert OrganizationMember.objects.filter(
            organization=self.organization,
            user=auth_identity.user,
        ).exists()