|
1 | 1 | import os |
2 | 2 | import random |
3 | 3 | from datetime import datetime, timedelta |
4 | | -from time import time |
| 4 | +from time import sleep, time |
5 | 5 | from typing import Any |
6 | 6 | from unittest import mock |
7 | 7 | from uuid import uuid4 |
|
23 | 23 | from sentry.models.groupmeta import GroupMeta |
24 | 24 | from sentry.models.groupredirect import GroupRedirect |
25 | 25 | from sentry.models.userreport import UserReport |
26 | | -from sentry.services import eventstore |
27 | 26 | from sentry.services.eventstore.models import Event |
28 | 27 | from sentry.snuba.dataset import Dataset, EntityKey |
29 | 28 | from sentry.snuba.referrer import Referrer |
@@ -492,17 +491,22 @@ def test_simple_issue_platform(self) -> None: |
492 | 491 | assert nodestore.backend.get(event_node_id) |
493 | 492 | assert self.select_error_events(self.project.id) == expected_error |
494 | 493 |
|
495 | | - # The Issue Platform group and occurrence have been deleted |
| 494 | + # The Issue Platform group and occurrence have been deleted from Postgres and Snuba |
496 | 495 | assert not Group.objects.filter(id=issue_platform_group.id).exists() |
497 | 496 | # 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}" |
506 | 510 |
|
507 | 511 | @mock.patch("sentry.deletions.tasks.nodestore.bulk_snuba_queries") |
508 | 512 | def test_issue_platform_batching(self, mock_bulk_snuba_queries: mock.Mock) -> None: |
|
0 commit comments