mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
103 lines
4.2 KiB
Python
103 lines
4.2 KiB
Python
from datetime import datetime, timezone
|
|
|
|
from django.urls import reverse
|
|
|
|
from sentry.models.eventerror import EventError
|
|
from sentry.models.processingissue import EventProcessingIssue, ProcessingIssue
|
|
from sentry.models.rawevent import RawEvent
|
|
from sentry.testutils.cases import APITestCase
|
|
from sentry.testutils.silo import region_silo_test
|
|
|
|
|
|
@region_silo_test
|
|
class ProjectProjectProcessingIssuesTest(APITestCase):
|
|
def test_simple(self):
|
|
self.login_as(user=self.user)
|
|
|
|
team = self.create_team()
|
|
project1 = self.create_project(teams=[team], name="foo")
|
|
|
|
raw_event = RawEvent.objects.create(project_id=project1.id, event_id="abc")
|
|
|
|
issue, _ = ProcessingIssue.objects.get_or_create(
|
|
project_id=project1.id, checksum="abc", type=EventError.NATIVE_MISSING_DSYM
|
|
)
|
|
|
|
EventProcessingIssue.objects.get_or_create(raw_event=raw_event, processing_issue=issue)
|
|
|
|
url = reverse(
|
|
"sentry-api-0-project-processing-issues",
|
|
kwargs={"organization_slug": project1.organization.slug, "project_slug": project1.slug},
|
|
)
|
|
response = self.client.get(url, format="json")
|
|
assert response.status_code == 200, response.content
|
|
assert response.data["hasIssues"] is True
|
|
assert response.data["hasMoreResolveableIssues"] is False
|
|
assert response.data["numIssues"] == 1
|
|
assert response.data["issuesProcessing"] == 0
|
|
assert response.data["resolveableIssues"] == 0
|
|
|
|
def test_issues(self):
|
|
self.login_as(user=self.user)
|
|
|
|
team = self.create_team()
|
|
project1 = self.create_project(teams=[team], name="foo")
|
|
|
|
raw_event = RawEvent.objects.create(project_id=project1.id, event_id="abc")
|
|
|
|
issue, _ = ProcessingIssue.objects.get_or_create(
|
|
project_id=project1.id,
|
|
checksum="abc",
|
|
type=EventError.NATIVE_MISSING_DSYM,
|
|
datetime=datetime(2013, 8, 13, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
|
|
issue2, _ = ProcessingIssue.objects.get_or_create(
|
|
project_id=project1.id,
|
|
checksum="abcd",
|
|
type=EventError.NATIVE_MISSING_DSYM,
|
|
datetime=datetime(2014, 8, 13, 3, 8, 25, tzinfo=timezone.utc),
|
|
)
|
|
|
|
EventProcessingIssue.objects.get_or_create(raw_event=raw_event, processing_issue=issue)
|
|
|
|
url = reverse(
|
|
"sentry-api-0-project-processing-issues",
|
|
kwargs={"organization_slug": project1.organization.slug, "project_slug": project1.slug},
|
|
)
|
|
response = self.client.get(url + "?detailed=1", format="json")
|
|
assert response.status_code == 200, response.content
|
|
assert len(response.data["issues"]) == 2
|
|
assert response.data["numIssues"] == 2
|
|
assert response.data["lastSeen"] == issue2.datetime
|
|
assert response.data["hasIssues"] is True
|
|
assert response.data["hasMoreResolveableIssues"] is False
|
|
assert response.data["issuesProcessing"] == 0
|
|
assert response.data["resolveableIssues"] == 0
|
|
assert response.data["issues"][0]["checksum"] == issue.checksum
|
|
assert response.data["issues"][0]["numEvents"] == 1
|
|
assert response.data["issues"][0]["type"] == EventError.NATIVE_MISSING_DSYM
|
|
assert response.data["issues"][1]["checksum"] == issue2.checksum
|
|
|
|
def test_resolvable_issues(self):
|
|
self.login_as(user=self.user)
|
|
|
|
team = self.create_team()
|
|
project1 = self.create_project(teams=[team], name="foo")
|
|
|
|
RawEvent.objects.create(project_id=project1.id, event_id="abc")
|
|
|
|
url = reverse(
|
|
"sentry-api-0-project-processing-issues",
|
|
kwargs={"organization_slug": project1.organization.slug, "project_slug": project1.slug},
|
|
)
|
|
response = self.client.get(url + "?detailed=1", format="json")
|
|
assert response.status_code == 200, response.content
|
|
assert response.data["numIssues"] == 0
|
|
assert response.data["resolveableIssues"] == 1
|
|
assert response.data["lastSeen"] is None
|
|
assert response.data["hasIssues"] is False
|
|
assert response.data["hasMoreResolveableIssues"] is False
|
|
assert response.data["numIssues"] == 0
|
|
assert response.data["issuesProcessing"] == 0
|