diff --git a/tests/sentry/api/endpoints/test_event_committers.py b/tests/sentry/api/endpoints/test_event_committers.py index be44f1b454a444..0e5c1b3c4911ff 100644 --- a/tests/sentry/api/endpoints/test_event_committers.py +++ b/tests/sentry/api/endpoints/test_event_committers.py @@ -161,6 +161,7 @@ def test_with_commit_context(self): project_id=self.project.id, event_type=EventType.ERROR, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, @@ -221,6 +222,7 @@ def test_with_commit_context_pull_request(self): project_id=self.project.id, event_type=EventType.ERROR, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, diff --git a/tests/sentry/auth/test_helper.py b/tests/sentry/auth/test_helper.py index dc456f146859bd..a2c1927e1d57c9 100644 --- a/tests/sentry/auth/test_helper.py +++ b/tests/sentry/auth/test_helper.py @@ -1,3 +1,6 @@ +from __future__ import annotations + +from typing import TypedDict from unittest import mock from django.contrib.auth.models import AnonymousUser @@ -33,6 +36,13 @@ def _set_up_request(): return request +class _Identity(TypedDict): + id: str + email: str + name: str + data: dict[str, str] + + class AuthIdentityHandlerTest(TestCase): def setUp(self): self.provider = "dummy" @@ -42,7 +52,7 @@ def setUp(self): organization_id=self.organization.id, provider=self.provider ) self.email = "test@example.com" - self.identity = { + self.identity: _Identity = { "id": "1234", "email": self.email, "name": "Morty", diff --git a/tests/sentry/deletions/test_project.py b/tests/sentry/deletions/test_project.py index e0825303b50a21..103a7c3180da31 100644 --- a/tests/sentry/deletions/test_project.py +++ b/tests/sentry/deletions/test_project.py @@ -39,6 +39,7 @@ class DeleteProjectTest(APITestCase, TransactionTestCase, HybridCloudTestMixin): def test_simple(self): project = self.create_project(name="test") event = self.store_event(data={}, project_id=project.id) + assert event.group is not None group = event.group GroupAssignee.objects.create(group=group, project=project, user_id=self.user.id) GroupMeta.objects.create(group=group, key="foo", value="bar") diff --git a/tests/sentry/event_manager/grouping/test_assign_to_group.py b/tests/sentry/event_manager/grouping/test_assign_to_group.py index 383f9b246d2d23..58f56e41d2c374 100644 --- a/tests/sentry/event_manager/grouping/test_assign_to_group.py +++ b/tests/sentry/event_manager/grouping/test_assign_to_group.py @@ -412,6 +412,7 @@ def test_existing_group_new_hash_exists( existing_event = save_event_with_grouping_config( event_data, project, NEWSTYLE_CONFIG, LEGACY_CONFIG, True ) + assert existing_event.group_id is not None assert ( GroupHash.objects.filter( project_id=project.id, group_id=existing_event.group_id @@ -420,6 +421,7 @@ def test_existing_group_new_hash_exists( ) else: existing_event = save_event_with_grouping_config(event_data, project, NEWSTYLE_CONFIG) + assert existing_event.group_id is not None assert ( GroupHash.objects.filter( project_id=project.id, group_id=existing_event.group_id diff --git a/tests/sentry/event_manager/test_event_manager.py b/tests/sentry/event_manager/test_event_manager.py index d1ac8c28fdec38..d027fa31c6091f 100644 --- a/tests/sentry/event_manager/test_event_manager.py +++ b/tests/sentry/event_manager/test_event_manager.py @@ -1146,6 +1146,7 @@ def test_release_project_slug_long(self) -> None: def test_group_release_no_env(self) -> None: project_id = self.project.id event = self.make_release_event("1.0", project_id) + assert event.group_id is not None release = Release.objects.get(version="1.0", projects=event.project_id) @@ -1160,6 +1161,7 @@ def test_group_release_with_env(self) -> None: manager = EventManager(make_event(release="1.0", environment="prod", event_id="a" * 32)) manager.normalize() event = manager.save(self.project.id) + assert event.group_id is not None release = Release.objects.get(version="1.0", projects=event.project_id) @@ -1172,6 +1174,7 @@ def test_group_release_with_env(self) -> None: release = Release.objects.get(version="1.0", projects=event.project_id) + assert event.group_id is not None assert GroupRelease.objects.filter( release_id=release.id, group_id=event.group_id, environment="staging" ).exists() @@ -1361,6 +1364,7 @@ def save_event() -> Event: return manager.save(self.project.id) event = save_event() + assert event.group_id is not None # Ensure the `GroupEnvironment` record was created. instance = GroupEnvironment.objects.get( diff --git a/tests/sentry/incidents/endpoints/test_organization_combined_rule_index_endpoint.py b/tests/sentry/incidents/endpoints/test_organization_combined_rule_index_endpoint.py index 6fbeec0f4ef306..77c5c46496d048 100644 --- a/tests/sentry/incidents/endpoints/test_organization_combined_rule_index_endpoint.py +++ b/tests/sentry/incidents/endpoints/test_organization_combined_rule_index_endpoint.py @@ -851,7 +851,7 @@ def test_non_existing_owner(self): @freeze_time() def test_last_triggered(self): self.login_as(user=self.user) - rule = Rule.objects.filter(project=self.project).first() + rule = Rule.objects.filter(project=self.project).get() resp = self.get_success_response(self.organization.slug, expand=["lastTriggered"]) assert resp.data[0]["lastTriggered"] is None RuleFireHistory.objects.create(project=self.project, rule=rule, group=self.group) diff --git a/tests/sentry/integrations/slack/actions/notification/test_slack_notify_service_action.py b/tests/sentry/integrations/slack/actions/notification/test_slack_notify_service_action.py index eee33155882c39..7fd54f5aed6abb 100644 --- a/tests/sentry/integrations/slack/actions/notification/test_slack_notify_service_action.py +++ b/tests/sentry/integrations/slack/actions/notification/test_slack_notify_service_action.py @@ -50,6 +50,7 @@ def setUp(self) -> None: }, project_id=self.project.id, ) + assert self.event.group is not None self.rule_fire_history = RuleFireHistory.objects.create( project=self.project, rule=self.rule, diff --git a/tests/sentry/models/test_projectownership.py b/tests/sentry/models/test_projectownership.py index 1279e3c5edcbfd..c83b80ccc7ff12 100644 --- a/tests/sentry/models/test_projectownership.py +++ b/tests/sentry/models/test_projectownership.py @@ -303,6 +303,7 @@ def test_handle_auto_assignment_when_only_codeowners_exists(self): data=self.python_event_data(), project_id=self.project.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, @@ -352,6 +353,7 @@ def test_handle_auto_assignment_when_only_suspect_commit_exists_multiple_emails( data=self.python_event_data(), project_id=self.project2.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, @@ -384,6 +386,7 @@ def test_handle_skip_auto_assignment(self): data=self.python_event_data(), project_id=self.project.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, @@ -427,6 +430,7 @@ def test_handle_skip_auto_assignment_same_assignee(self, mock_assign): data=self.python_event_data(), project_id=self.project.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, @@ -466,6 +470,7 @@ def test_handle_auto_assignment_when_codeowners_and_issueowners_exists(self): data=self.python_event_data(), project_id=self.project2.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, @@ -549,6 +554,7 @@ def test_handle_auto_assignment_when_suspect_committer_and_codeowners_and_issueo data=self.python_event_data(), project_id=self.project2.id, ) + assert self.event.group is not None GroupOwner.objects.create( group=self.event.group, diff --git a/tests/sentry/monitors/endpoints/test_organization_monitor_index.py b/tests/sentry/monitors/endpoints/test_organization_monitor_index.py index 7c70ae7fc1daec..a764b1f3158f7b 100644 --- a/tests/sentry/monitors/endpoints/test_organization_monitor_index.py +++ b/tests/sentry/monitors/endpoints/test_organization_monitor_index.py @@ -443,7 +443,7 @@ def test_simple_with_alert_rule(self): response = self.get_success_response(self.organization.slug, **data) monitor = Monitor.objects.get(slug=response.data["slug"]) - alert_rule_id = monitor.config.get("alert_rule_id") + alert_rule_id = monitor.config["alert_rule_id"] rule = Rule.objects.get( project_id=monitor.project_id, id=alert_rule_id, source=RuleSource.CRON_MONITOR ) diff --git a/tests/sentry/notifications/utils/test_participants.py b/tests/sentry/notifications/utils/test_participants.py index 0f50c66713dbdb..f3d111721ac7fc 100644 --- a/tests/sentry/notifications/utils/test_participants.py +++ b/tests/sentry/notifications/utils/test_participants.py @@ -488,6 +488,7 @@ def test_send_to_suspect_committers(self): data={"stacktrace": STACKTRACE}, project_id=self.project.id, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, @@ -535,6 +536,7 @@ def test_send_to_suspect_committers_no_owners(self): }, project_id=project_suspect_committer.id, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, @@ -565,6 +567,7 @@ def test_send_to_suspect_committers_dupe(self): data={"stacktrace": STACKTRACE}, project_id=self.project.id, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, @@ -588,6 +591,7 @@ def test_send_to_suspect_committers_exception(self): data={"stacktrace": STACKTRACE}, project_id=self.project.id, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, @@ -614,6 +618,7 @@ def test_send_to_suspect_committers_not_project_member(self): data={"stacktrace": STACKTRACE}, project_id=self.project.id, ) + assert event.group is not None GroupOwner.objects.create( group=event.group, diff --git a/tests/sentry/relay/config/test_metric_extraction.py b/tests/sentry/relay/config/test_metric_extraction.py index cadd05808a0a61..dbbe1d8e85d0d9 100644 --- a/tests/sentry/relay/config/test_metric_extraction.py +++ b/tests/sentry/relay/config/test_metric_extraction.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from collections.abc import Sequence from datetime import timedelta from unittest import mock @@ -2091,29 +2093,13 @@ def test_widget_modifed_after_on_demand(default_project: Project) -> None: def test_get_current_widget_specs( default_project: Project, current_version: SpecVersion, expected: set[str] ) -> None: - for i, spec in enumerate( - [ - { - "version": 1, - "hashes": ["abcd", "defg"], - "state": "enabled:manual", - }, - { - "version": 2, - "hashes": ["1234", "5678"], - "state": "enabled:manual", - }, - { - "version": 2, - "hashes": ["ab12", "cd78"], - "state": "disabled:high-cardinality", - }, - { - "version": 2, - "hashes": ["1234"], - "state": "enabled:manual", - }, - ] + for i, (version, hashes, state) in enumerate( + ( + (1, ["abcd", "defg"], "enabled:manual"), + (2, ["1234", "5678"], "enabled:manual"), + (2, ["ab12", "cd78"], "disabled:high-cardinality"), + (2, ["1234"], "enabled:manual"), + ) ): widget_query, _, _ = create_widget( ["epm()"], @@ -2124,9 +2110,9 @@ def test_get_current_widget_specs( ) DashboardWidgetQueryOnDemand.objects.create( dashboard_widget_query=widget_query, - spec_version=spec["version"], - spec_hashes=spec["hashes"], - extraction_state=spec["state"], + spec_version=version, + spec_hashes=hashes, + extraction_state=state, ) with mock.patch( "sentry.snuba.metrics.extraction.OnDemandMetricSpecVersioning.get_query_spec_version", diff --git a/tests/sentry/tasks/integrations/github/test_pr_comment.py b/tests/sentry/tasks/integrations/github/test_pr_comment.py index 83f8f71b0cb956..fd40e17ef7dcfb 100644 --- a/tests/sentry/tasks/integrations/github/test_pr_comment.py +++ b/tests/sentry/tasks/integrations/github/test_pr_comment.py @@ -135,6 +135,7 @@ def add_groupowner_to_commit(self, commit: Commit, project, user): }, project_id=project.id, ) + assert event.group is not None self.fingerprint += 1 groupowner = GroupOwner.objects.create( group=event.group, diff --git a/tests/sentry/tasks/test_commit_context.py b/tests/sentry/tasks/test_commit_context.py index 3201a46db5fdec..d6a700368c563b 100644 --- a/tests/sentry/tasks/test_commit_context.py +++ b/tests/sentry/tasks/test_commit_context.py @@ -1165,7 +1165,7 @@ def test_gh_comment_debounces(self, get_jwt, mock_comment_workflow, mock_get_com groupowner = GroupOwner.objects.create( group_id=self.event.group_id, type=GroupOwnerType.SUSPECT_COMMIT.value, - user_id="1", + user_id=1, project_id=self.event.project_id, organization_id=self.project.organization_id, context={"commitId": self.commit.id}, @@ -1200,7 +1200,7 @@ def test_gh_comment_multiple_comments( groupowner = GroupOwner.objects.create( group_id=self.event.group_id, type=GroupOwnerType.SUSPECT_COMMIT.value, - user_id="1", + user_id=1, project_id=self.event.project_id, organization_id=self.project.organization_id, context={"commitId": self.commit.id}, diff --git a/tests/sentry/utils/test_committers.py b/tests/sentry/utils/test_committers.py index 437cdfa71a48bd..ceb6a679c46dfd 100644 --- a/tests/sentry/utils/test_committers.py +++ b/tests/sentry/utils/test_committers.py @@ -841,7 +841,7 @@ def test_no_author(self): group_id=event.group.id, project_id=self.project.id, release_id=self.release.id ) GroupOwner.objects.create( - group_id=event.group_id, + group_id=event.group.id, project=self.project, organization_id=self.organization.id, type=GroupOwnerType.SUSPECT_COMMIT.value,