Skip to content

Commit 90df829

Browse files
authored
chore(eco): allow deleting disabled org integrations (#103785)
1 parent 0a8a804 commit 90df829

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/sentry/integrations/api/endpoints/organization_integration_details.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def delete(
119119
with transaction.atomic(using=router.db_for_write(OrganizationIntegration)):
120120
updated = False
121121
for oi in OrganizationIntegration.objects.filter(
122-
id=org_integration.id, status=ObjectStatus.ACTIVE
122+
id=org_integration.id, status__in=[ObjectStatus.ACTIVE, ObjectStatus.DISABLED]
123123
):
124124
oi.update(status=ObjectStatus.PENDING_DELETION)
125125
updated = True

tests/sentry/integrations/api/endpoints/test_organization_integration_details.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import responses
44

55
from sentry import audit_log
6+
from sentry.constants import ObjectStatus
67
from sentry.deletions.models.scheduleddeletion import ScheduledDeletion
78
from sentry.integrations.base import IntegrationInstallation
89
from sentry.integrations.models.integration import Integration
@@ -106,6 +107,19 @@ def test_removal(self) -> None:
106107
model_name="OrganizationIntegration", object_id=org_integration.id
107108
)
108109

110+
def test_delete_disabled_integration(self) -> None:
111+
org_integration = OrganizationIntegration.objects.get(
112+
integration=self.integration, organization_id=self.organization.id
113+
)
114+
org_integration.update(status=ObjectStatus.DISABLED)
115+
self.get_success_response(self.organization.slug, self.integration.id)
116+
assert Integration.objects.filter(id=self.integration.id).exists()
117+
118+
org_integration.refresh_from_db()
119+
assert ScheduledDeletion.objects.filter(
120+
model_name="OrganizationIntegration", object_id=org_integration.id
121+
)
122+
109123

110124
@control_silo_test
111125
class IssueOrganizationIntegrationDetailsGetTest(APITestCase):

0 commit comments

Comments
 (0)