Browse Source

ref(issue-priority): Remove issue-priority-ui flag from backend (#73064)

Malachi Willey 8 months ago
parent
commit
559283ed7b

+ 3 - 11
src/sentry/api/helpers/group_index/index.py

@@ -41,6 +41,8 @@ advanced_search_features: Sequence[tuple[Callable[[SearchFilter], Any], str]] =
     (lambda search_filter: search_filter.value.is_wildcard(), "wildcard search"),
 ]
 
+DEFAULT_QUERY = "is:unresolved issue.priority:[high, medium]"
+
 
 def parse_and_convert_issue_search_query(
     query: str,
@@ -85,7 +87,7 @@ def build_query_params_from_request(
     has_query = request.GET.get("query")
     query = request.GET.get("query", None)
     if query is None:
-        query = _get_default_query(organization)
+        query = DEFAULT_QUERY
 
     query = query.strip()
 
@@ -334,13 +336,3 @@ def get_first_last_release_info(
         item if item is not None else {"version": version}
         for item, version in zip(serialized_releases, versions)
     ]
-
-
-def _get_default_query(organization: Organization) -> str:
-    if features.has("organizations:issue-priority-ui", organization):
-        return "is:unresolved issue.priority:[high, medium]"
-
-    if features.has("organizations:issue-stream-custom-views", organization):
-        return "is:unresolved issue.priority:[high, medium]"
-
-    return "is:unresolved"

+ 0 - 2
src/sentry/features/temporary.py

@@ -140,8 +140,6 @@ def register_temporary_features(manager: FeatureManager):
     manager.add("organizations:issue-details-new-experience-toggle", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
     # Enable tag improvements in the issue details page
     manager.add("organizations:issue-details-tag-improvements", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
-    # Enable issue priority in the UI
-    manager.add("organizations:issue-priority-ui", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
     # Whether to allow issue only search on the issue list
     manager.add("organizations:issue-search-allow-postgres-only-search", OrganizationFeature, FeatureHandlerStrategy.REMOTE)
     # Whether to make a side/parallel query against events -> group_attributes when searching issues

+ 4 - 4
src/sentry/issues/endpoints/organization_group_index.py

@@ -216,9 +216,9 @@ class OrganizationGroupIndexEndpoint(OrganizationEndpoint):
         Return a list of issues (groups) bound to an organization.  All parameters are
         supplied as query string parameters.
 
-        A default query of ``is:unresolved`` is applied. To return results
-        with other statuses send an new query value (i.e. ``?query=`` for all
-        results).
+        A default query of ``is:unresolved issue.priority:[high,medium]`` is applied.
+        To return results with other statuses send a new query value
+        (i.e. ``?query=`` for all results).
 
         The ``groupStatsPeriod`` parameter can be used to select the timeline
         stats which should be present. Possible values are: '' (disable),
@@ -244,7 +244,7 @@ class OrganizationGroupIndexEndpoint(OrganizationEndpoint):
                                     Set to `1` to enable.
         :qparam querystring query: an optional Sentry structured search
                                    query.  If not provided an implied
-                                   ``"is:unresolved"`` is assumed.)
+                                   ``"is:unresolved issue.priority:[high,medium]"`` is assumed.)
         :qparam bool savedSearch:  if this is set to False, then we are making the request without
                                    a saved search and will look for the default search from this endpoint.
         :qparam string searchId:   if passed in, this is the selected search

+ 18 - 10
tests/sentry/issues/endpoints/test_organization_group_index.py

@@ -2042,7 +2042,6 @@ class GroupListTest(APITestCase, SnubaTestCase, SearchIssueTestMixin):
         assert response.status_code == 200
         assert [int(r["id"]) for r in response.data] == [event1.group.id]
 
-    @with_feature("organizations:issue-priority-ui")
     def test_default_search_with_priority(self) -> None:
         event1 = self.store_event(
             data={"timestamp": iso_format(before_now(seconds=500)), "fingerprint": ["group-1"]},
@@ -2540,7 +2539,7 @@ class GroupListTest(APITestCase, SnubaTestCase, SearchIssueTestMixin):
             project_id=self.project.id,
         )
         self.login_as(user=self.user)
-        response = self.get_success_response(useGroupSnubaDataset=1, qs_params={"query": ""})
+        response = self.get_success_response(useGroupSnubaDataset=1, query="")
         assert len(response.data) == 1
         assert mock_query.call_count == 1
 
@@ -2569,7 +2568,7 @@ class GroupListTest(APITestCase, SnubaTestCase, SearchIssueTestMixin):
             sort="new",
             statsPeriod="1h",
             useGroupSnubaDataset=1,
-            qs_params={"query": ""},
+            query="",
         )
 
         assert len(response.data) == 2
@@ -2601,7 +2600,7 @@ class GroupListTest(APITestCase, SnubaTestCase, SearchIssueTestMixin):
             sort="freq",
             statsPeriod="1h",
             useGroupSnubaDataset=1,
-            qs_params={"query": ""},
+            query="",
         )
 
         assert len(response.data) == 2
@@ -2674,7 +2673,7 @@ class GroupListTest(APITestCase, SnubaTestCase, SearchIssueTestMixin):
         response = self.get_success_response(
             sort="user",
             useGroupSnubaDataset=1,
-            qs_params={"query": ""},
+            query="",
         )
 
         assert len(response.data) == 2
@@ -3837,7 +3836,12 @@ class GroupUpdateTest(APITestCase, SnubaTestCase):
 
         self.login_as(user=self.user)
         response = self.get_success_response(
-            qs_params={"status": "unresolved", "project": self.project.id}, status="resolved"
+            qs_params={
+                "status": "unresolved",
+                "project": self.project.id,
+                "query": "is:unresolved",
+            },
+            status="resolved",
         )
         assert response.data == {"status": "resolved", "statusDetails": {}, "inbox": None}
 
@@ -3891,7 +3895,12 @@ class GroupUpdateTest(APITestCase, SnubaTestCase):
 
         self.login_as(user=member)
         response = self.get_success_response(
-            qs_params={"status": "unresolved", "project": self.project.id}, status="resolved"
+            qs_params={
+                "status": "unresolved",
+                "project": self.project.id,
+                "query": "is:unresolved",
+            },
+            status="resolved",
         )
         assert response.data == {"status": "resolved", "statusDetails": {}, "inbox": None}
         assert response.status_code == 200
@@ -5341,8 +5350,7 @@ class GroupDeleteTest(APITestCase, SnubaTestCase):
 
         self.login_as(user=self.user)
 
-        # if query is '' it defaults to is:unresolved
-        response = self.get_response(qs_params={"query": ""})
+        response = self.get_success_response(qs_params={"query": ""})
         assert response.status_code == 204
 
         for group in groups:
@@ -5354,7 +5362,7 @@ class GroupDeleteTest(APITestCase, SnubaTestCase):
         )
 
         with self.tasks():
-            response = self.get_response(qs_params={"query": ""})
+            response = self.get_success_response(qs_params={"query": ""})
 
         assert response.status_code == 204
 

+ 0 - 8
tests/snuba/api/endpoints/test_organization_events_meta.py

@@ -7,7 +7,6 @@ from rest_framework.exceptions import ParseError
 from sentry.issues.grouptype import ProfileFileIOGroupType
 from sentry.testutils.cases import APITestCase, SnubaTestCase
 from sentry.testutils.helpers.datetime import before_now, iso_format
-from sentry.testutils.helpers.features import with_feature
 from tests.sentry.issues.test_utils import SearchIssueTestMixin
 
 pytestmark = pytest.mark.sentry_metrics
@@ -69,13 +68,6 @@ class OrganizationEventsMetaEndpoint(APITestCase, SnubaTestCase, SearchIssueTest
         assert response.data["count"] == 1
 
     def test_invalid_query(self):
-        with self.feature(self.features):
-            response = self.client.get(self.url, {"query": "is:unresolved"}, format="json")
-
-        assert response.status_code == 400, response.content
-
-    @with_feature("organizations:issue-priority-ui")
-    def test_invalid_query_priority(self):
         with self.feature(self.features):
             response = self.client.get(
                 self.url, {"query": "is:unresolved priority:[high, medium]"}, format="json"

+ 9 - 5
tests/snuba/api/endpoints/test_project_group_index.py

@@ -163,7 +163,7 @@ class GroupListTest(APITestCase, SnubaTestCase):
         group2 = self.create_group(last_seen=timezone.now())
 
         self.login_as(user=self.user)
-        response = self.client.get(self.path, format="json")
+        response = self.client.get(self.path + "?query=is:unresolved", format="json")
         assert response.status_code == 200
         assert len(response.data) == 1
         assert response.data[0]["id"] == str(group2.id)
@@ -318,7 +318,7 @@ class GroupListTest(APITestCase, SnubaTestCase):
 
         self.login_as(user=self.user)
 
-        response = self.client.get(self.path, format="json")
+        response = self.client.get(self.path + "?query=is:unresolved", format="json")
         assert len(response.data) == 1
         assert response.data[0]["id"] == str(group.id)
 
@@ -376,7 +376,9 @@ class GroupUpdateTest(APITestCase, SnubaTestCase):
 
         self.login_as(user=self.user)
         response = self.client.put(
-            f"{self.path}?status=unresolved", data={"status": "resolved"}, format="json"
+            f"{self.path}?status=unresolved&query=is:unresolved",
+            data={"status": "resolved"},
+            format="json",
         )
         assert response.status_code == 200, response.data
         assert response.data == {"status": "resolved", "statusDetails": {}, "inbox": None}
@@ -421,7 +423,9 @@ class GroupUpdateTest(APITestCase, SnubaTestCase):
         assert len(response.data) == 100
 
         response = self.client.put(
-            f"{self.path}?status=unresolved", data={"status": "resolved"}, format="json"
+            f"{self.path}?status=unresolved&query=is:unresolved",
+            data={"status": "resolved"},
+            format="json",
         )
         assert response.status_code == 200, response.data
 
@@ -472,7 +476,7 @@ class GroupUpdateTest(APITestCase, SnubaTestCase):
         with self.tasks():
             with self.feature({"organizations:integrations-issue-sync": True}):
                 response = self.client.put(
-                    f"{self.path}?status=unresolved",
+                    f"{self.path}?status=unresolved&query=is:unresolved",
                     data={"status": "resolved"},
                     format="json",
                 )