Skip to content

Commit 783cc88

Browse files
authored
nit: query for environment name '' (#63634)
if groupenvironment is guaranteed to exist on the group model, then we should query for environments with name ''
1 parent 419aae8 commit 783cc88

File tree

2 files changed

+14
-17
lines changed

2 files changed

+14
-17
lines changed

src/sentry/api/endpoints/release_thresholds/utils/get_new_issue_counts.py

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,18 @@ def get_new_issue_counts(
1515
) -> dict[str, int]:
1616
"""
1717
constructs a query for each threshold, filtering on project
18+
NOTE: group messages are guaranteed to have a related groupenvironment
1819
"""
1920
queryset: QuerySet | None = None
2021
for t in thresholds:
22+
env: dict[str, Any] = t.get("environment") or {}
2123
query = Q(
2224
project__organization__id=organization_id,
2325
project__id=t["project_id"],
26+
groupenvironment__first_release__version=t["release"],
27+
groupenvironment__first_seen__range=(t["start"], t["end"]),
28+
groupenvironment__environment__name=env.get("name", ""),
2429
)
25-
env: dict[str, Any] = t.get("environment") or {}
26-
if env:
27-
# If we're filtering on environment, just use the first_release/first_seen from the groupenvironment so we don't need to cross reference tables
28-
query &= Q(
29-
groupenvironment__first_release__version=t["release"],
30-
groupenvironment__first_seen__range=(t["start"], t["end"]),
31-
groupenvironment__environment__name=env.get("name"),
32-
)
33-
else:
34-
query &= Q(
35-
first_release__version=t["release"],
36-
first_seen__range=(t["start"], t["end"]),
37-
groupenvironment__isnull=True,
38-
)
3930
qs = (
4031
Group.objects.filter(query)
4132
.values("first_release__version")

tests/sentry/api/endpoints/release_thresholds/utils/test_get_new_issue_counts.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ def setUp(self):
2121
self.project2 = self.create_project(name="bar", organization=self.org)
2222

2323
# 2 environments
24-
self.production_environment = Environment.objects.create(
25-
organization_id=self.organization.id, name="production"
24+
self.null_environment = Environment.objects.create(
25+
organization_id=self.organization.id, name=""
2626
)
2727
self.canary_environment = Environment.objects.create(
2828
organization_id=self.organization.id, name="canary"
@@ -59,12 +59,18 @@ def setUp(self):
5959
first_release=self.release1,
6060
first_seen=self.now - timedelta(minutes=30),
6161
)
62+
self.groupenvironment_g1_r1 = GroupEnvironment.objects.create(
63+
group_id=self.group1_p1_r1.id,
64+
environment_id=self.null_environment.id,
65+
first_release=self.release1,
66+
first_seen=self.now - timedelta(minutes=30),
67+
)
6268
self.group2_p1_r1 = Group.objects.create(
6369
project=self.project1,
6470
first_release=self.release1,
6571
first_seen=self.now - timedelta(minutes=30),
6672
)
67-
self.groupenvironment_g1_r1 = GroupEnvironment.objects.create(
73+
self.groupenvironment_g2_r1 = GroupEnvironment.objects.create(
6874
group_id=self.group2_p1_r1.id,
6975
environment_id=self.canary_environment.id,
7076
first_release=self.release1,

0 commit comments

Comments
 (0)