mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
81 lines
3.0 KiB
Python
81 lines
3.0 KiB
Python
from sentry.models.organizationmember import InviteStatus
|
|
from sentry.silo import SiloMode
|
|
from sentry.testutils.cases import APITestCase
|
|
from sentry.testutils.outbox import outbox_runner
|
|
from sentry.testutils.silo import assume_test_silo_mode, region_silo_test
|
|
|
|
|
|
@region_silo_test
|
|
class TeamMembersTest(APITestCase):
|
|
endpoint = "sentry-api-0-team-members"
|
|
|
|
def setUp(self):
|
|
self.org = self.create_organization(owner=self.user)
|
|
self.team = self.create_team(organization=self.org)
|
|
self.member = self.create_member(organization=self.org, user=self.create_user(), teams=[])
|
|
self.team_member = self.create_member(
|
|
organization=self.org, user=self.create_user("[email protected]"), teams=[self.team]
|
|
)
|
|
|
|
def test_simple(self):
|
|
self.login_as(user=self.user)
|
|
|
|
response = self.get_response(self.org.slug, self.team.slug)
|
|
assert response.status_code == 200
|
|
assert len(response.data) == 1
|
|
assert response.data[0]["id"] == str(self.team_member.id)
|
|
|
|
def test_team_members_list_does_not_include_invite_requests(self):
|
|
pending_invite = self.create_member(
|
|
email="[email protected]", organization=self.org, teams=[self.team]
|
|
)
|
|
|
|
# invite requests
|
|
self.create_member(
|
|
email="[email protected]",
|
|
organization=self.org,
|
|
invite_status=InviteStatus.REQUESTED_TO_BE_INVITED.value,
|
|
teams=[self.team],
|
|
)
|
|
self.create_member(
|
|
email="[email protected]",
|
|
organization=self.org,
|
|
invite_status=InviteStatus.REQUESTED_TO_JOIN.value,
|
|
teams=[self.team],
|
|
)
|
|
self.login_as(user=self.user)
|
|
|
|
response = self.get_response(self.org.slug, self.team.slug)
|
|
assert response.status_code == 200
|
|
assert len(response.data) == 2
|
|
assert response.data[1]["id"] == str(self.team_member.id)
|
|
assert response.data[0]["id"] == str(pending_invite.id)
|
|
|
|
def test_team_members_list_does_not_include_inactive_users(self):
|
|
inactive_user = self.create_user(email="[email protected]")
|
|
inactive_user.is_active = False
|
|
with outbox_runner():
|
|
with assume_test_silo_mode(SiloMode.CONTROL):
|
|
inactive_user.save()
|
|
inactive_member = self.create_member(
|
|
organization=self.org,
|
|
user=inactive_user,
|
|
teams=[self.team],
|
|
)
|
|
|
|
self.login_as(user=self.user)
|
|
|
|
response = self.get_response(self.org.slug, self.team.slug)
|
|
assert response.status_code == 200
|
|
assert len(response.data) == 1
|
|
assert response.data[0]["id"] != str(inactive_member.id)
|
|
|
|
def test_team_members_list_includes_roles(self):
|
|
self.login_as(user=self.user)
|
|
|
|
response = self.get_response(self.org.slug, self.team.slug)
|
|
assert response.status_code == 200
|
|
assert len(response.data) == 1
|
|
assert response.data[0]["teamRole"] is None
|
|
assert response.data[0]["teamSlug"] == self.team.slug
|