|
@@ -1,7 +1,11 @@
|
|
|
import pytest
|
|
|
from django.urls import NoReverseMatch, reverse
|
|
|
|
|
|
-from sentry.discover.models import DiscoverSavedQuery, DiscoverSavedQueryProject
|
|
|
+from sentry.discover.models import (
|
|
|
+ DiscoverSavedQuery,
|
|
|
+ DiscoverSavedQueryProject,
|
|
|
+ DiscoverSavedQueryTypes,
|
|
|
+)
|
|
|
from sentry.testutils.cases import APITestCase, SnubaTestCase
|
|
|
|
|
|
|
|
@@ -143,6 +147,68 @@ class DiscoverSavedQueryDetailTest(APITestCase, SnubaTestCase):
|
|
|
assert response.data["conditions"] == []
|
|
|
assert response.data["limit"] == 20
|
|
|
|
|
|
+ def test_put_dataset(self):
|
|
|
+ with self.feature(self.feature_name):
|
|
|
+ url = reverse(
|
|
|
+ "sentry-api-0-discover-saved-query-detail", args=[self.org.slug, self.query_id]
|
|
|
+ )
|
|
|
+
|
|
|
+ response = self.client.put(
|
|
|
+ url,
|
|
|
+ {
|
|
|
+ "name": "New query",
|
|
|
+ "projects": self.project_ids,
|
|
|
+ "fields": [],
|
|
|
+ "range": "24h",
|
|
|
+ "limit": 20,
|
|
|
+ "conditions": [],
|
|
|
+ "aggregations": [],
|
|
|
+ "orderby": "-time",
|
|
|
+ "queryDataset": "transaction-like",
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+ assert response.status_code == 200, response.content
|
|
|
+ assert response.data["id"] == str(self.query_id)
|
|
|
+ assert set(response.data["projects"]) == set(self.project_ids)
|
|
|
+ assert response.data["fields"] == []
|
|
|
+ assert response.data["conditions"] == []
|
|
|
+ assert response.data["limit"] == 20
|
|
|
+ assert response.data["queryDataset"] == "transaction-like"
|
|
|
+
|
|
|
+ def test_dataset_set_to_discover_on_update(self):
|
|
|
+ query = {"fields": ["event_id"], "query": "event.type:error", "limit": 10, "version": 2}
|
|
|
+ model = DiscoverSavedQuery.objects.create(
|
|
|
+ organization=self.org,
|
|
|
+ created_by_id=self.user.id,
|
|
|
+ name="query",
|
|
|
+ query=query,
|
|
|
+ dataset=DiscoverSavedQueryTypes.TRANSACTION_LIKE,
|
|
|
+ )
|
|
|
+
|
|
|
+ with self.feature(self.feature_name):
|
|
|
+ url = reverse(
|
|
|
+ "sentry-api-0-discover-saved-query-detail", args=[self.org.slug, model.id]
|
|
|
+ )
|
|
|
+
|
|
|
+ response = self.client.put(
|
|
|
+ url,
|
|
|
+ {
|
|
|
+ "name": "New query",
|
|
|
+ "projects": self.project_ids,
|
|
|
+ "fields": [],
|
|
|
+ "range": "24h",
|
|
|
+ "limit": 20,
|
|
|
+ "conditions": [],
|
|
|
+ "aggregations": [],
|
|
|
+ "orderby": "-time",
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+ assert response.status_code == 200, response.content
|
|
|
+ assert response.data["id"] == str(model.id)
|
|
|
+ assert response.data["queryDataset"] == "discover"
|
|
|
+
|
|
|
def test_put_with_interval(self):
|
|
|
with self.feature(self.feature_name):
|
|
|
url = reverse(
|