Skip to content

Commit c1d0e7a

Browse files
committed
poll to wait for event to be deleted
1 parent f4393ae commit c1d0e7a

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

tests/sentry/deletions/test_group.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22
import random
33
from datetime import datetime, timedelta
4-
from time import time
4+
from time import sleep, time
55
from typing import Any
66
from unittest import mock
77
from uuid import uuid4
@@ -23,7 +23,6 @@
2323
from sentry.models.groupmeta import GroupMeta
2424
from sentry.models.groupredirect import GroupRedirect
2525
from sentry.models.userreport import UserReport
26-
from sentry.services import eventstore
2726
from sentry.services.eventstore.models import Event
2827
from sentry.snuba.dataset import Dataset, EntityKey
2928
from sentry.snuba.referrer import Referrer
@@ -492,17 +491,22 @@ def test_simple_issue_platform(self) -> None:
492491
assert nodestore.backend.get(event_node_id)
493492
assert self.select_error_events(self.project.id) == expected_error
494493

495-
# The Issue Platform group and occurrence have been deleted
494+
# The Issue Platform group and occurrence have been deleted from Postgres and Snuba
496495
assert not Group.objects.filter(id=issue_platform_group.id).exists()
497496
# assert not nodestore.backend.get(occurrence_node_id)
498-
conditions = eventstore.Filter(
499-
project_ids=[self.project.id], group_ids=[issue_platform_group.id]
500-
)
501-
tenant_ids = {"organization_id": self.organization.id, "referrer": "test_deletions"}
502-
events = eventstore.backend.get_events(
503-
conditions, dataset=Dataset.IssuePlatform, tenant_ids=tenant_ids
504-
)
505-
assert len(events) == 0
497+
498+
# Poll to ensure the event is actually deleted from Snuba
499+
max_attempts = 100
500+
event_deleted = False
501+
for attempt in range(max_attempts):
502+
result = self.select_issue_platform_events(self.project.id)
503+
if result is None:
504+
event_deleted = True
505+
break
506+
if attempt < max_attempts - 1:
507+
sleep(0.1) # Wait 100ms between attempts
508+
509+
assert event_deleted, f"Event still exists in Snuba after deletion: {result}"
506510

507511
@mock.patch("sentry.deletions.tasks.nodestore.bulk_snuba_queries")
508512
def test_issue_platform_batching(self, mock_bulk_snuba_queries: mock.Mock) -> None:

0 commit comments

Comments
 (0)