def test_simple(self): project = self.create_project() group = self.create_group(project=project, status=GroupStatus.PENDING_DELETION) event = self.create_event(group=group) tv, _ = tagstore.get_or_create_tag_value(project.id, self.environment.id, "key1", "value1") tagstore.create_event_tags( event_id=event.id, group_id=group.id, project_id=project.id, environment_id=self.environment.id, tags=[(tv.key, tv.value)], ) GroupAssignee.objects.create(group=group, project=project, user=self.user) GroupHash.objects.create(project=project, group=group, hash=uuid4().hex) GroupMeta.objects.create(group=group, key="foo", value="bar") GroupRedirect.objects.create(group_id=group.id, previous_group_id=1) with self.tasks(): delete_groups(object_ids=[group.id]) assert not Event.objects.filter(id=event.id).exists() assert not EventTag.objects.filter(event_id=event.id).exists() assert not GroupRedirect.objects.filter(group_id=group.id).exists() assert not GroupHash.objects.filter(group_id=group.id).exists() assert not Group.objects.filter(id=group.id).exists()
def test_simple(self): event_id = "a" * 32 project = self.create_project() event = self.store_event( data={ "event_id": event_id, "timestamp": iso_format(before_now(minutes=1)) }, project_id=project.id, ) group = event.group group.update(status=GroupStatus.PENDING_DELETION) GroupAssignee.objects.create(group=group, project=project, user=self.user) GroupHash.objects.create(project=project, group=group, hash=uuid4().hex) GroupMeta.objects.create(group=group, key="foo", value="bar") GroupRedirect.objects.create(group_id=group.id, previous_group_id=1) with self.tasks(): delete_groups(object_ids=[group.id]) assert not Event.objects.filter(id=event.id).exists() assert not GroupRedirect.objects.filter(group_id=group.id).exists() assert not GroupHash.objects.filter(group_id=group.id).exists() assert not Group.objects.filter(id=group.id).exists()
def test_cleanup(self, nodestore_delete_multi, os_environ): os_environ.side_effect = lambda key: "1" if key == "_SENTRY_CLEANUP" else None group = self.event.group with self.tasks(): delete_groups(object_ids=[group.id]) assert nodestore_delete_multi.call_count == 0
def test_cleanup(self, nodestore_delete_multi): # Skip EventDataDeletionTask if _SENTRY_CLEANUP is set os.environ["_SENTRY_CLEANUP"] = "1" group = self.event.group with self.tasks(): delete_groups(object_ids=[group.id]) # Eventually this will be 0, nodestore deletions are currently still # being triggered from event deletions assert nodestore_delete_multi.call_count == 1
def test_simple(self): project = self.create_project() group = self.create_group( project=project, status=GroupStatus.PENDING_DELETION, ) event = self.create_event(group=group) EventMapping.objects.create( project_id=project.id, event_id='a' * 32, group_id=group.id, ) tv, _ = tagstore.get_or_create_tag_value(project.id, self.environment.id, 'key1', 'value1') tagstore.create_event_tags( event_id=event.id, group_id=group.id, project_id=project.id, environment_id=self.environment.id, tags=[ (tv.key, tv.value), ], ) GroupAssignee.objects.create( group=group, project=project, user=self.user, ) GroupHash.objects.create( project=project, group=group, hash=uuid4().hex, ) GroupMeta.objects.create( group=group, key='foo', value='bar', ) GroupRedirect.objects.create( group_id=group.id, previous_group_id=1, ) with self.tasks(): delete_groups(object_ids=[group.id]) assert not Event.objects.filter(id=event.id).exists() assert not EventMapping.objects.filter( event_id='a' * 32, group_id=group.id, ).exists() assert not EventTag.objects.filter(event_id=event.id).exists() assert not GroupRedirect.objects.filter(group_id=group.id).exists() assert not GroupHash.objects.filter(group_id=group.id).exists() assert not Group.objects.filter(id=group.id).exists()
def test_simple(self): EventDataDeletionTask.DEFAULT_CHUNK_SIZE = 1 # test chunking logic group = self.event.group assert nodestore.get(self.node_id) assert nodestore.get(self.node_id2) assert nodestore.get(self.node_id3) with self.tasks(): delete_groups(object_ids=[group.id]) assert not UserReport.objects.filter(group_id=group.id).exists() assert not UserReport.objects.filter( event_id=self.event.event_id).exists() assert not EventAttachment.objects.filter( event_id=self.event.event_id).exists() assert not GroupRedirect.objects.filter(group_id=group.id).exists() assert not GroupHash.objects.filter(group_id=group.id).exists() assert not Group.objects.filter(id=group.id).exists() assert not nodestore.get(self.node_id) assert not nodestore.get(self.node_id2) assert nodestore.get( self.node_id3), "Does not remove from second group"