Skip to content

Commit 57dadbf

Browse files
feat(crons): Blank owner_team_id when deleting teams (#69035)
1 parent 3d947d7 commit 57dadbf

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/sentry/deletions/defaults/team.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ def mark_deletion_in_progress(self, instance_list):
1919
def delete_instance(self, instance):
2020
from sentry.incidents.models.alert_rule import AlertRule
2121
from sentry.models.rule import Rule
22+
from sentry.monitors.models import Monitor
2223

2324
AlertRule.objects.filter(owner_id=instance.actor_id).update(owner=None)
2425
Rule.objects.filter(owner_id=instance.actor_id).update(owner=None)
26+
Monitor.objects.filter(owner_team_id=instance.actor_id).update(owner_team_id=None)
2527
super().delete_instance(instance)

tests/sentry/deletions/test_team.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from sentry.models.projectteam import ProjectTeam
33
from sentry.models.rule import Rule
44
from sentry.models.team import Team
5+
from sentry.monitors.models import Monitor, MonitorType
56
from sentry.tasks.deletion.scheduled import run_scheduled_deletions
67
from sentry.testutils.cases import TestCase
78
from sentry.testutils.hybrid_cloud import HybridCloudTestMixin
@@ -44,3 +45,22 @@ def test_alert_blanking(self):
4445
rule.refresh_from_db()
4546
assert rule.owner_id is None, "Should be blank when team is deleted."
4647
assert alert_rule.owner_id is None, "Should be blank when team is deleted."
48+
49+
def test_monitor_blanking(self):
50+
team = self.create_team(name="test")
51+
monitor = Monitor.objects.create(
52+
organization_id=self.organization.id,
53+
project_id=self.project.id,
54+
type=MonitorType.CRON_JOB,
55+
name="My Awesome Monitor",
56+
owner_team_id=team.actor.id,
57+
)
58+
self.ScheduledDeletion.schedule(team, days=0)
59+
60+
with self.tasks():
61+
run_scheduled_deletions()
62+
63+
assert not Team.objects.filter(id=team.id).exists()
64+
65+
monitor.refresh_from_db()
66+
assert monitor.owner_team_id is None, "Should be blank when team is deleted."

0 commit comments

Comments
 (0)