mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
77 lines
3.2 KiB
Python
77 lines
3.2 KiB
Python
from datetime import datetime, timedelta, timezone
|
|
|
|
from sentry.models.group import GroupStatus
|
|
from sentry.models.groupassignee import GroupAssignee
|
|
from sentry.models.groupenvironment import GroupEnvironment
|
|
from sentry.testutils.cases import APITestCase
|
|
from sentry.testutils.silo import region_silo_test
|
|
from sentry.testutils.skips import requires_snuba
|
|
|
|
pytestmark = [requires_snuba]
|
|
|
|
|
|
@region_silo_test
|
|
class TeamGroupsOldTest(APITestCase):
|
|
endpoint = "sentry-api-0-team-oldest-issues"
|
|
|
|
def test_simple(self):
|
|
project1 = self.create_project(teams=[self.team], slug="foo")
|
|
project2 = self.create_project(teams=[self.team], slug="bar")
|
|
group1 = self.create_group(
|
|
project=project1,
|
|
first_seen=datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
group2 = self.create_group(
|
|
project=project2,
|
|
first_seen=datetime(2015, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
resolved_group = self.create_group(project=project2, status=GroupStatus.RESOLVED)
|
|
GroupAssignee.objects.assign(group1, self.user)
|
|
GroupAssignee.objects.assign(group2, self.user)
|
|
GroupAssignee.objects.assign(resolved_group, self.user)
|
|
|
|
other_user = self.create_user()
|
|
assigned_to_other = self.create_group(
|
|
project=project2,
|
|
first_seen=datetime(2015, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
GroupAssignee.objects.assign(assigned_to_other, other_user)
|
|
self.create_group(
|
|
project=project2,
|
|
first_seen=datetime(2015, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
|
|
# Should be excluded since it hasn't been seen for over 90 days.
|
|
last_seen_too_old_group = self.create_group(
|
|
project=project1,
|
|
first_seen=datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
last_seen=datetime.now() - timedelta(days=91),
|
|
)
|
|
GroupAssignee.objects.assign(last_seen_too_old_group, self.user)
|
|
|
|
self.login_as(user=self.user)
|
|
response = self.get_success_response(self.organization.slug, self.team.slug)
|
|
assert [group["id"] for group in response.data] == [str(group2.id), str(group1.id)]
|
|
|
|
def test_filter_by_environment(self):
|
|
project1 = self.create_project(teams=[self.team], slug="foo")
|
|
environment = self.create_environment(name="prod", project=project1)
|
|
self.create_environment(name="dev", project=project1)
|
|
group1 = self.create_group(
|
|
project=project1,
|
|
first_seen=datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
GroupAssignee.objects.assign(group1, self.user)
|
|
GroupEnvironment.objects.create(group_id=group1.id, environment_id=environment.id)
|
|
|
|
self.login_as(user=self.user)
|
|
response = self.get_success_response(
|
|
self.organization.slug, self.team.slug, environment="prod"
|
|
)
|
|
assert [group["id"] for group in response.data] == [str(group1.id)]
|
|
|
|
response = self.get_success_response(
|
|
self.organization.slug, self.team.slug, environment="dev"
|
|
)
|
|
assert [group["id"] for group in response.data] == []
|