diff --git a/src/sentry/integrations/api/endpoints/organization_integration_details.py b/src/sentry/integrations/api/endpoints/organization_integration_details.py index 5ad861a2e65ba2..1d31ccbf796b8f 100644 --- a/src/sentry/integrations/api/endpoints/organization_integration_details.py +++ b/src/sentry/integrations/api/endpoints/organization_integration_details.py @@ -119,7 +119,7 @@ def delete( with transaction.atomic(using=router.db_for_write(OrganizationIntegration)): updated = False for oi in OrganizationIntegration.objects.filter( - id=org_integration.id, status=ObjectStatus.ACTIVE + id=org_integration.id, status__in=[ObjectStatus.ACTIVE, ObjectStatus.DISABLED] ): oi.update(status=ObjectStatus.PENDING_DELETION) updated = True diff --git a/tests/sentry/integrations/api/endpoints/test_organization_integration_details.py b/tests/sentry/integrations/api/endpoints/test_organization_integration_details.py index 6df344987fa559..7b34292f6e4b1e 100644 --- a/tests/sentry/integrations/api/endpoints/test_organization_integration_details.py +++ b/tests/sentry/integrations/api/endpoints/test_organization_integration_details.py @@ -3,6 +3,7 @@ import responses from sentry import audit_log +from sentry.constants import ObjectStatus from sentry.deletions.models.scheduleddeletion import ScheduledDeletion from sentry.integrations.base import IntegrationInstallation from sentry.integrations.models.integration import Integration @@ -106,6 +107,19 @@ def test_removal(self) -> None: model_name="OrganizationIntegration", object_id=org_integration.id ) + def test_delete_disabled_integration(self) -> None: + org_integration = OrganizationIntegration.objects.get( + integration=self.integration, organization_id=self.organization.id + ) + org_integration.update(status=ObjectStatus.DISABLED) + self.get_success_response(self.organization.slug, self.integration.id) + assert Integration.objects.filter(id=self.integration.id).exists() + + org_integration.refresh_from_db() + assert ScheduledDeletion.objects.filter( + model_name="OrganizationIntegration", object_id=org_integration.id + ) + @control_silo_test class IssueOrganizationIntegrationDetailsGetTest(APITestCase):