From a546e1e42cf6194be0493cbdcc21755cc05f55b5 Mon Sep 17 00:00:00 2001 From: Katie Byers Date: Mon, 26 Aug 2024 14:43:18 -0700 Subject: [PATCH] add test --- .../test_event_manager_grouping.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/sentry/event_manager/test_event_manager_grouping.py b/tests/sentry/event_manager/test_event_manager_grouping.py index 8291f999bd2172..a1ae7f2a01a9af 100644 --- a/tests/sentry/event_manager/test_event_manager_grouping.py +++ b/tests/sentry/event_manager/test_event_manager_grouping.py @@ -14,9 +14,12 @@ from sentry.grouping.result import CalculatedHashes from sentry.models.auditlogentry import AuditLogEntry from sentry.models.group import Group +from sentry.models.grouphash import GroupHash +from sentry.models.grouphashmetadata import GroupHashMetadata from sentry.projectoptions.defaults import DEFAULT_GROUPING_CONFIG from sentry.testutils.cases import TestCase from sentry.testutils.helpers.eventprocessing import save_new_event +from sentry.testutils.helpers.options import override_options from sentry.testutils.pytest.fixtures import django_db_all from sentry.testutils.silo import assume_test_silo_mode_of from sentry.testutils.skips import requires_snuba @@ -165,6 +168,30 @@ def test_auto_updates_grouping_config(self): ) assert actual_expiry == expected_expiry or actual_expiry == expected_expiry - 1 + def test_creates_grouphash_metadata_when_appropriate(self): + # The killswitch is obeyed + with override_options({"grouping.grouphash_metadata.ingestion_writes_enabled": False}): + event1 = save_new_event({"message": "Dogs are great!"}, self.project) + grouphash = GroupHash.objects.filter( + project=self.project, hash=event1.get_primary_hash() + ).first() + assert grouphash and grouphash.metadata is None + + # New hashes get metadata + event2 = save_new_event({"message": "Adopt, don't shop"}, self.project) + grouphash = GroupHash.objects.filter( + project=self.project, hash=event2.get_primary_hash() + ).first() + assert grouphash and isinstance(grouphash.metadata, GroupHashMetadata) + + # Existing hashes aren't backfiled when new events are assigned to them + event3 = save_new_event({"message": "Dogs are great!"}, self.project) + assert event3.get_primary_hash() == event1.get_primary_hash() + grouphash = GroupHash.objects.filter( + project=self.project, hash=event3.get_primary_hash() + ).first() + assert grouphash and grouphash.metadata is None + class PlaceholderTitleTest(TestCase): """