diff --git a/engine/apps/api/tests/test_alert_group.py b/engine/apps/api/tests/test_alert_group.py index b293256c..a22ebdb3 100644 --- a/engine/apps/api/tests/test_alert_group.py +++ b/engine/apps/api/tests/test_alert_group.py @@ -76,6 +76,27 @@ def test_get_filter_by_integration( assert len(response.data["results"]) == 4 +@pytest.mark.django_db +def test_get_alert_groups_from_deleted_integration(alert_group_internal_api_setup, make_user_auth_headers): + user, token, alert_groups = alert_group_internal_api_setup + + alert_receive_channel = alert_groups[0].channel + alert_receive_channel.delete() + + client = APIClient() + + url = reverse("api-internal:alertgroup-list") + response = client.get( + url, + format="json", + **make_user_auth_headers(user, token), + ) + + assert response.status_code == status.HTTP_200_OK + # Alert groups from deleted integrations should be returned + assert len(response.data["results"]) == 4 + + @pytest.mark.django_db def test_get_filter_started_at(alert_group_internal_api_setup, make_user_auth_headers): user, token, _ = alert_group_internal_api_setup diff --git a/engine/apps/api/views/alert_group.py b/engine/apps/api/views/alert_group.py index f1db153a..f022010e 100644 --- a/engine/apps/api/views/alert_group.py +++ b/engine/apps/api/views/alert_group.py @@ -324,7 +324,7 @@ class AlertGroupView( def get_queryset(self, ignore_filtering_by_available_teams=False): # no select_related or prefetch_related is used at this point, it will be done on paginate_queryset. - alert_receive_channels_qs = AlertReceiveChannel.objects.filter( + alert_receive_channels_qs = AlertReceiveChannel.objects_with_deleted.filter( organization_id=self.request.auth.organization.id ) if not ignore_filtering_by_available_teams: