|
@@ -1,7 +1,9 @@
|
|
|
+import uuid
|
|
|
from uuid import uuid4
|
|
|
|
|
|
from sentry.models.release import Release
|
|
|
from sentry.testutils import APITestCase, SnubaTestCase
|
|
|
+from sentry.testutils.helpers import with_feature
|
|
|
from sentry.testutils.helpers.datetime import before_now, iso_format
|
|
|
from sentry.testutils.silo import region_silo_test
|
|
|
|
|
@@ -12,13 +14,13 @@ class GroupEventDetailsEndpointTest(APITestCase, SnubaTestCase):
|
|
|
super().setUp()
|
|
|
|
|
|
self.login_as(user=self.user)
|
|
|
- project = self.create_project()
|
|
|
+ self.project_1 = self.create_project()
|
|
|
|
|
|
release_version = uuid4().hex
|
|
|
release = Release.objects.create(
|
|
|
- organization_id=self.project.organization_id, version=release_version
|
|
|
+ organization_id=self.project_1.organization_id, version=release_version
|
|
|
)
|
|
|
- release.add_project(self.project)
|
|
|
+ release.add_project(self.project_1)
|
|
|
|
|
|
self.event_a = self.store_event(
|
|
|
data={
|
|
@@ -28,7 +30,7 @@ class GroupEventDetailsEndpointTest(APITestCase, SnubaTestCase):
|
|
|
"fingerprint": ["group-1"],
|
|
|
"release": release_version,
|
|
|
},
|
|
|
- project_id=project.id,
|
|
|
+ project_id=self.project_1.id,
|
|
|
)
|
|
|
self.event_b = self.store_event(
|
|
|
data={
|
|
@@ -38,7 +40,7 @@ class GroupEventDetailsEndpointTest(APITestCase, SnubaTestCase):
|
|
|
"fingerprint": ["group-1"],
|
|
|
"release": release_version,
|
|
|
},
|
|
|
- project_id=project.id,
|
|
|
+ project_id=self.project_1.id,
|
|
|
)
|
|
|
self.event_c = self.store_event(
|
|
|
data={
|
|
@@ -48,7 +50,7 @@ class GroupEventDetailsEndpointTest(APITestCase, SnubaTestCase):
|
|
|
"fingerprint": ["group-1"],
|
|
|
"release": release_version,
|
|
|
},
|
|
|
- project_id=project.id,
|
|
|
+ project_id=self.project_1.id,
|
|
|
)
|
|
|
|
|
|
def test_get_simple_latest(self):
|
|
@@ -129,3 +131,37 @@ class GroupEventDetailsEndpointTest(APITestCase, SnubaTestCase):
|
|
|
assert not {"firstEvent", "lastEvent", "newGroups"} <= set(
|
|
|
response_with_collapse.data["release"]
|
|
|
)
|
|
|
+
|
|
|
+ def test_get_helpful_feature_off(self):
|
|
|
+ url = f"/api/0/issues/{self.event_a.group.id}/events/helpful/"
|
|
|
+ response = self.client.get(url, format="json")
|
|
|
+
|
|
|
+ assert response.status_code == 404, response.content
|
|
|
+
|
|
|
+ @with_feature("organizations:issue-details-most-helpful-event")
|
|
|
+ def test_get_simple_helpful(self):
|
|
|
+ self.event_d = self.store_event(
|
|
|
+ data={
|
|
|
+ "event_id": "d" * 32,
|
|
|
+ "environment": "staging",
|
|
|
+ "timestamp": iso_format(before_now(minutes=1)),
|
|
|
+ "fingerprint": ["group-1"],
|
|
|
+ "contexts": {
|
|
|
+ "replay": {"replay_id": uuid.uuid4().hex},
|
|
|
+ "trace": {
|
|
|
+ "sampled": True,
|
|
|
+ "span_id": "babaae0d4b7512d9",
|
|
|
+ "trace_id": "a7d67cf796774551a95be6543cacd459",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ "errors": [],
|
|
|
+ },
|
|
|
+ project_id=self.project_1.id,
|
|
|
+ )
|
|
|
+ url = f"/api/0/issues/{self.event_a.group.id}/events/helpful/"
|
|
|
+ response = self.client.get(url, format="json")
|
|
|
+
|
|
|
+ assert response.status_code == 200, response.content
|
|
|
+ assert response.data["id"] == str(self.event_d.event_id)
|
|
|
+ assert response.data["previousEventID"] == self.event_c.event_id
|
|
|
+ assert response.data["nextEventID"] is None
|