Skip to content

Conversation

@cathteng
Copy link
Member

@cathteng cathteng commented Dec 3, 2025

No description provided.

@github-actions github-actions bot added the Scope: Backend Automatically applied to PRs that change backend components label Dec 3, 2025
@codecov
Copy link

codecov bot commented Dec 3, 2025

❌ 138 Tests Failed:

Tests completed Failed Passed Skipped
30164 138 30026 241
View the top 3 failed test(s) by shortest run time
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_full_pipeline_with_group_states
Stack Traces | 0.708s run time
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1421: in patched
    with self.decoration_helper(patched,
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/contextlib.py#x1B[0m:141: in __enter__
    return next(self.gen)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1403: in decoration_helper
    arg = exit_stack.enter_context(patching)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/contextlib.py#x1B[0m:530: in enter_context
    result = _enter(cm)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1495: in __enter__
    original, local = self.get_original()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1465: in get_original
    raise AttributeError(
#x1B[1m#x1B[31mE   AttributeError: <module 'sentry.tasks.post_process' from '.../sentry/tasks/post_process.py'> does not have the attribute 'process_rules'#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_full_pipeline_with_group_states
Stack Traces | 0.85s run time
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1421: in patched
    with self.decoration_helper(patched,
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/contextlib.py#x1B[0m:141: in __enter__
    return next(self.gen)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1403: in decoration_helper
    arg = exit_stack.enter_context(patching)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/contextlib.py#x1B[0m:530: in enter_context
    result = _enter(cm)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1495: in __enter__
    original, local = self.get_original()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1................../x64/lib/python3.13/unittest/mock.py#x1B[0m:1465: in get_original
    raise AttributeError(
#x1B[1m#x1B[31mE   AttributeError: <module 'sentry.tasks.post_process' from '.../sentry/tasks/post_process.py'> does not have the attribute 'process_rules'#x1B[0m
tests.sentry.workflow_engine.processors.contexts.test_workflow_event_context.TestWorkflowEventContext::test_resetting_context
Stack Traces | 2.33s run time
#x1B[1m#x1B[.../processors/contexts/test_workflow_event_context.py#x1B[0m:89: in test_resetting_context
    assert ctx.detector is None
#x1B[1m#x1B[31mE   AssertionError: assert <Detector at 0x7f7df0194ad0: id=69> is None#x1B[0m
#x1B[1m#x1B[31mE    +  where <Detector at 0x7f7df0194ad0: id=69> = WorkflowEventContextData(detector=<Detector at 0x7f7df0194ad0: id=69>, organization=<Organization at 0x7f7df01afcd0: i...slug='baz'>, environment=<Environment at 0x7f7e8423b650: id=276, organization_id=4557220348297216, name='development'>).detector#x1B[0m
tests.sentry.integrations.slack.service.test_slack_service.TestNotifyAllThreadsForActivity::test_handle_parent_notification_with_open_period_model_open_period_model
Stack Traces | 2.48s run time
#x1B[1m#x1B[.../slack/service/test_slack_service.py#x1B[0m:337: in test_handle_parent_notification_with_open_period_model_open_period_model
    assert mock_send_notification.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='_send_notification_to_slack_channel' id='140664747200192'>.call_count#x1B[0m
tests.sentry.integrations.slack.service.test_slack_service.TestNotifyAllThreadsForActivity::test_handle_parent_notification_with_open_period_uptime_resolved
Stack Traces | 2.49s run time
#x1B[1m#x1B[.../slack/service/test_slack_service.py#x1B[0m:393: in test_handle_parent_notification_with_open_period_uptime_resolved
    assert mock_send_notification.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='_send_notification_to_slack_channel' id='140325958844496'>.call_count#x1B[0m
tests.sentry.integrations.slack.service.test_slack_service.TestNotifyAllThreadsForActivity::test_no_parent_notification
Stack Traces | 2.65s run time
#x1B[1m#x1B[.../slack/service/test_slack_service.py#x1B[0m:404: in test_no_parent_notification
    assert not mock_send.called
#x1B[1m#x1B[31mE   AssertionError: assert not True#x1B[0m
#x1B[1m#x1B[31mE    +  where True = <MagicMock name='_send_notification_to_slack_channel' id='139981581594848'>.called#x1B[0m
tests.sentry.integrations.slack.service.test_slack_service.TestNotifyAllThreadsForActivity::test_handle_parent_notification_with_open_period
Stack Traces | 2.72s run time
#x1B[1m#x1B[.../slack/service/test_slack_service.py#x1B[0m:278: in test_handle_parent_notification_with_open_period
    assert mock_send_notification.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='_send_notification_to_slack_channel' id='139824435225872'>.call_count#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_rule_processor_backwards_compat
Stack Traces | 2.75s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:344: in test_rule_processor_backwards_compat
    mock_processor.assert_called_once_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'RuleProcessor' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_rule_processor
Stack Traces | 2.77s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:365: in test_rule_processor
    mock_processor.return_value.apply.assert_called_once_with()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'apply' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupFeedbackTest::test_rule_processor_backwards_compat
Stack Traces | 2.77s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:344: in test_rule_processor_backwards_compat
    mock_processor.assert_called_once_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'RuleProcessor' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_maintains_valid_snooze
Stack Traces | 2.85s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1865: in test_maintains_valid_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fdc4c2505f0>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.integrations.slack.service.test_slack_service.TestNotifyAllThreadsForActivity::test_calls_handle_parent_notification
Stack Traces | 2.9s run time
#x1B[1m#x1B[.../slack/service/test_slack_service.py#x1B[0m:217: in test_calls_handle_parent_notification
    mock_get_channel_id.assert_called()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:946: in assert_called
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected '_get_channel_id_from_parent_notification' to have been called.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_occurrence_deduping
Stack Traces | 2.94s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:3629: in test_occurrence_deduping
    assert mock_processor.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='RuleProcessor' id='139982383952096'>.call_count#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_invalidates_snooze
Stack Traces | 2.94s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1779: in test_invalidates_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fd1709b0dd0>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.mail.test_actions.NotifyEmailTest::test_full_integration_performance
Stack Traces | 2.99s run time
#x1B[1m#x1B[.../sentry/mail/test_actions.py#x1B[0m:285: in test_full_integration_performance
    assert len(mail.outbox) == 1
#x1B[1m#x1B[31mE   assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = len([])#x1B[0m
#x1B[1m#x1B[31mE    +    where [] = mail.outbox#x1B[0m
tests.sentry.integrations.slack.test_notify_action.SlackNotifyActionTest::test_no_upgrade_notice_bot_app
Stack Traces | 3.02s run time
#x1B[1m#x1B[.../integrations/slack/test_notify_action.py#x1B[0m:101: in test_no_upgrade_notice_bot_app
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.notifications.notifications.test_digests.DigestSlackNotification::test_slack_digest_notification_truncates_at_48_blocks
Stack Traces | 3.04s run time
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:364: in test_slack_digest_notification_truncates_at_48_blocks
    event_to_record(event, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_rule_processor_buffer_values
Stack Traces | 3.1s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:423: in test_rule_processor_buffer_values
    assert MockAction.return_value.after.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <Mock name='mock().after' id='140178878995088'>.call_count#x1B[0m
#x1B[1m#x1B[31mE    +    where <Mock name='mock().after' id='140178878995088'> = <Mock name='mock()' spec='EventAction' id='140178878992400'>.after#x1B[0m
#x1B[1m#x1B[31mE    +      where <Mock name='mock()' spec='EventAction' id='140178878992400'> = <Mock id='140179144466384'>.return_value#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupFeedbackTest::test_rule_processor
Stack Traces | 3.19s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:365: in test_rule_processor
    mock_processor.return_value.apply.assert_called_once_with()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'apply' to be called once. Called 0 times.#x1B[0m
tests.sentry.rules.processing.test_processor.RuleProcessorTestFilters::test_slack_title_link_notification_uuid
Stack Traces | 3.2s run time
#x1B[1m#x1B[.../rules/processing/test_processor.py#x1B[0m:999: in test_slack_title_link_notification_uuid
    mock_post.assert_called_once()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:956: in assert_called_once
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'chat_postMessage' to have been called once. Called 0 times.#x1B[0m
tests.sentry.integrations.slack.actions.notification.test_slack_notify_service_action.TestInit::test_after_with_threads
Stack Traces | 3.23s run time
#x1B[1m#x1B[.../actions/notification/test_slack_notify_service_action.py#x1B[0m:205: in test_after_with_threads
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_group_inbox_regression
Stack Traces | 3.24s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:799: in test_group_inbox_regression
    mock_processor.assert_called_with(EventMatcher(new_event), True, True, False, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f5ddc95c710>, True, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_performance_issue_alert_user_block
Stack Traces | 3.28s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:120: in test_performance_issue_alert_user_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_digest_enabled_block
Stack Traces | 3.29s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:1006: in test_digest_enabled_block
    backend.add(key, event_to_record(event, [rule]), increment_delay=0, maximum_delay=0)
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointTest::test_actions
Stack Traces | 3.34s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:68: in test_actions
    self.get_success_response(self.organization.slug, self.project.slug, actions=action_data)
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.integrations.slack.actions.notification.test_slack_notify_service_action.TestInit::test_after_slo_halt
Stack Traces | 3.36s run time
#x1B[1m#x1B[.../actions/notification/test_slack_notify_service_action.py#x1B[0m:142: in test_after_slo_halt
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_invalidates_snooze
Stack Traces | 3.38s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1779: in test_invalidates_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f9c6cff94f0>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_group_last_seen_buffer
Stack Traces | 3.4s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:483: in test_group_last_seen_buffer
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f6e6c75b2f0>, False, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointTest::test_name_action_with_custom_name
Stack Traces | 3.41s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:109: in test_name_action_with_custom_name
    self.get_success_response(
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterRuleNotifyTest::test_digest
Stack Traces | 3.47s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1827: in test_digest
    self.adapter.rule_notify(event, futures, ActionTargetType.ISSUE_OWNERS)
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:88: in rule_notify
    event_to_record(event, rules, notification_uuid=notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_generic_issue_alert_user_block
Stack Traces | 3.48s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:202: in test_generic_issue_alert_user_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_digests.DeliverDigestTest::test_fallthrough_choice_key
Stack Traces | 3.5s run time
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:61: in test_fallthrough_choice_key
    self.run_test(f"mail:p:{self.project.id}:IssueOwners::AllMembers")
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:39: in run_test
    event_to_record(event, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupFeedbackTest::test_maintains_valid_snooze
Stack Traces | 3.51s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1865: in test_maintains_valid_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fceec4b5b80>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupFeedbackTest::test_rule_processor_buffer_values
Stack Traces | 3.52s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:423: in test_rule_processor_buffer_values
    assert MockAction.return_value.after.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <Mock name='mock().after' id='140537919059488'>.call_count#x1B[0m
#x1B[1m#x1B[31mE    +    where <Mock name='mock().after' id='140537919059488'> = <Mock name='mock()' spec='EventAction' id='140537919053104'>.after#x1B[0m
#x1B[1m#x1B[31mE    +      where <Mock name='mock()' spec='EventAction' id='140537919053104'> = <Mock id='140537513014480'>.return_value#x1B[0m
tests.sentry.integrations.slack.test_notify_action.SlackNotifyActionTest::test_additional_attachment
Stack Traces | 3.52s run time
#x1B[1m#x1B[.../integrations/slack/test_notify_action.py#x1B[0m:373: in test_additional_attachment
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterRuleNotifyTest::test_digest_with_perf_issue
Stack Traces | 3.53s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1854: in test_digest_with_perf_issue
    self.adapter.rule_notify(event, futures, ActionTargetType.ISSUE_OWNERS)
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:88: in rule_notify
    event_to_record(event, rules, notification_uuid=notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_disabled_org_integration_for_user
Stack Traces | 3.53s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:334: in test_disabled_org_integration_for_user
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.opsgenie.test_client.OpsgenieClientTest::test_send_notification_unauthorized_errors
Stack Traces | 3.54s run time
#x1B[1m#x1B[.../integrations/opsgenie/test_client.py#x1B[0m:286: in test_send_notification_unauthorized_errors
    payload = client.build_issue_alert_payload(
#x1B[1m#x1B[.../integrations/opsgenie/client.py#x1B[0m:102: in build_issue_alert_payload
    rule_urls = self._get_rule_urls(group, rules)
#x1B[1m#x1B[.../integrations/opsgenie/client.py#x1B[0m:63: in _get_rule_urls
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_issue_owners_environment_block
Stack Traces | 3.61s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:430: in test_issue_alert_issue_owners_environment_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.actions.notification.test_slack_notify_service_action.TestInit::test_after_error
Stack Traces | 3.62s run time
#x1B[1m#x1B[.../actions/notification/test_slack_notify_service_action.py#x1B[0m:172: in test_after_error
    mock_metrics.incr.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: incr('integrations.slack.http_response', sample_rate=1.0, tags={'ok': False, 'status': 200})#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_notification_with_environment
Stack Traces | 3.63s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:270: in test_notification_with_environment
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.notifications.test_issue_alert.MSTeamsIssueAlertNotificationTest::test_issue_alert_user
Stack Traces | 3.64s run time
#x1B[1m#x1B[.../msteams/notifications/test_issue_alert.py#x1B[0m:50: in test_issue_alert_user
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_rule_processor
Stack Traces | 3.64s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:365: in test_rule_processor
    mock_processor.return_value.apply.assert_called_once_with()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'apply' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_group_inbox_regression
Stack Traces | 3.65s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:799: in test_group_inbox_regression
    mock_processor.assert_called_with(EventMatcher(new_event), True, True, False, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7efc18898aa0>, True, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointTest::test_sample_event_raises_exceptions
Stack Traces | 3.66s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:141: in test_sample_event_raises_exceptions
    assert mock_create_issue.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='create_issue' id='139957497656864'>.call_count#x1B[0m
tests.sentry.mail.test_actions.NotifyEmailTest::test_full_integration
Stack Traces | 3.67s run time
#x1B[1m#x1B[.../sentry/mail/test_actions.py#x1B[0m:171: in test_full_integration
    assert len(mail.outbox) == 1
#x1B[1m#x1B[31mE   assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = len([])#x1B[0m
#x1B[1m#x1B[31mE    +    where [] = mail.outbox#x1B[0m
tests.sentry.workflow_engine.processors.test_workflow_fire_history.TestWorkflowFireHistory::test_create_workflow_fire_histories_only_canonical
Stack Traces | 3.67s run time
#x1B[1m#x1B[.../workflow_engine/processors/test_workflow_fire_history.py#x1B[0m:48: in test_create_workflow_fire_histories_only_canonical
    assert result == []
#x1B[1m#x1B[31mE   AssertionError: assert [<WorkflowFir...imezone.utc)>] == []#x1B[0m
#x1B[1m#x1B[31mE     #x1B[0m
#x1B[1m#x1B[31mE     Left contains one more item: <WorkflowFireHistory at 0x7f9c1cacbb60: id=12, workflow_id=64, group_id=626, event_id='61285d148def41c8af918b5296e579a2', date_added=datetime.datetime(2025, 12, 3, 18, 13, 38, 139638, tzinfo=datetime.timezone.utc)>#x1B[0m
#x1B[1m#x1B[31mE     #x1B[0m
#x1B[1m#x1B[31mE     Full diff:#x1B[0m
#x1B[1m#x1B[31mE     - []#x1B[0m
#x1B[1m#x1B[31mE     + [#x1B[0m
#x1B[1m#x1B[31mE     +     <WorkflowFireHistory at 0x7f9c1cacbb60: id=12, workflow_id=64, group_id=626, event_id='61285d148def41c8af918b5296e579a2', date_added=datetime.datetime(2025, 12, 3, 18, 13, 38, 139638, tzinfo=datetime.timezone.utc)>,#x1B[0m
#x1B[1m#x1B[31mE     + ]#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_user_block
Stack Traces | 3.67s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:82: in test_issue_alert_user_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_notifications.BindRecordsTestCase::test_without_group
Stack Traces | 3.68s run time
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:55: in test_without_group
    assert not _bind_records([self.record], {}, self.rule_mapping)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/functools.py#x1B[0m:1039: in __get__
    val = self.func(instance)
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:39: in record
    return event_to_record(self.event, (self.rule,), self.notification_uuid)
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyIssueOwnersTest::test_group_substatus_header
Stack Traces | 3.69s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1410: in test_group_substatus_header
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.workflow_engine.processors.test_workflow.TestEvaluateWorkflowActionFilters::test_metrics_issue_dual_processing_metrics
Stack Traces | 3.7s run time
#x1B[1m#x1B[.../sentry/tasks/base.py#x1B[0m:158: in wrapped
    return func(*args, **kwargs)
#x1B[1m#x1B[.../workflow_engine/tasks/actions.py#x1B[0m:130: in trigger_action
    action.trigger(event_data)
#x1B[1m#x1B[.../workflow_engine/models/action.py#x1B[0m:137: in trigger
    handler.execute(event_data, self, detector)
#x1B[1m#x1B[.../slack/handlers/slack_action_handler.py#x1B[0m:46: in execute
    execute_via_group_type_registry(job, action, detector)
#x1B[1m#x1B[.../notifications/notification_action/utils.py#x1B[0m:52: in execute_via_group_type_registry
    handler.handle_workflow_action(event_data, action, detector)
#x1B[1m#x1B[.../group_type_notification_registry/handlers/metric_alert_registry_handler.py#x1B[0m:25: in handle_workflow_action
    handler.invoke_legacy_registry(job, action, detector)
#x1B[1m#x1B[.../notifications/notification_action/types.py#x1B[0m:487: in invoke_legacy_registry
    evidence_data, priority = cls._extract_from_group_event(event)
#x1B[1m#x1B[.../notifications/notification_action/types.py#x1B[0m:447: in _extract_from_group_event
    raise ValueError("Event occurrence priority is required for alert context")
#x1B[1m#x1B[31mE   ValueError: Event occurrence priority is required for alert context#x1B[0m

#x1B[33mDuring handling of the above exception, another exception occurred:#x1B[0m
#x1B[1m#x1B[.../workflow_engine/processors/test_workflow.py#x1B[0m:806: in test_metrics_issue_dual_processing_metrics
    process_workflows(self.batch_client, self.event_data, FROZEN_TIME)
#x1B[1m#x1B[.../workflow_engine/utils/log_context.py#x1B[0m:133: in wrapper
    return func(*args, **kwargs)
#x1B[1m#x1B[.../workflow_engine/processors/workflow.py#x1B[0m:553: in process_workflows
    fire_actions(actions, event_data)
#x1B[1m#x1B[.../workflow_engine/utils/scopedstats.py#x1B[0m:166: in wrapper
    return f(*args, **kwargs)
#x1B[1m#x1B[.../workflow_engine/processors/action.py#x1B[0m:197: in fire_actions
    trigger_action.apply_async(kwargs=task_params, headers={"sentry-propagate-traces": False})
#x1B[1m#x1B[.../sentry/silo/base.py#x1B[0m:158: in override
    return original_method(*args, **kwargs)
#x1B[1m#x1B[.../sentry/taskworker/task.py#x1B[0m:128: in apply_async
    self._func(*args, **kwargs)
#x1B[1m#x1B[.../sentry/tasks/base.py#x1B[0m:190: in wrapped
    retry_task(exc, raise_on_no_retries=raise_on_no_retries)
#x1B[1m#x1B[.../sentry/taskworker/retry.py#x1B[0m:56: in retry_task
    raise RetryTaskError()
#x1B[1m#x1B[31mE   sentry.taskworker.retry.RetryTaskError#x1B[0m
tests.sentry.integrations.opsgenie.test_client.OpsgenieClientTest::test_send_notification
Stack Traces | 3.74s run time
#x1B[1m#x1B[.../integrations/opsgenie/test_client.py#x1B[0m:85: in test_send_notification
    payload = client.build_issue_alert_payload(
#x1B[1m#x1B[.../integrations/opsgenie/client.py#x1B[0m:102: in build_issue_alert_payload
    rule_urls = self._get_rule_urls(group, rules)
#x1B[1m#x1B[.../integrations/opsgenie/client.py#x1B[0m:63: in _get_rule_urls
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointWorkflowEngineTest::test_actions
Stack Traces | 3.74s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:199: in test_actions
    self.get_success_response(self.organization.slug, self.project.slug, actions=action_data)
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.digests.test_notifications.BindRecordsTestCase::test_success
Stack Traces | 3.76s run time
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:50: in test_success
    (record,) = _bind_records([self.record], self.group_mapping, self.rule_mapping)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/functools.py#x1B[0m:1039: in __get__
    val = self.func(instance)
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:39: in record
    return event_to_record(self.event, (self.rule,), self.notification_uuid)
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.actions.notification.test_slack_notify_service_action.TestInit::test_after_reply_in_thread
Stack Traces | 3.79s run time
#x1B[1m#x1B[.../actions/notification/test_slack_notify_service_action.py#x1B[0m:264: in test_after_reply_in_thread
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.mail.test_actions.NotifyEmailTest::test_full_integration_fallthrough
Stack Traces | 3.8s run time
#x1B[1m#x1B[.../sentry/mail/test_actions.py#x1B[0m:210: in test_full_integration_fallthrough
    assert len(mail.outbox) == 1
#x1B[1m#x1B[31mE   assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = len([])#x1B[0m
#x1B[1m#x1B[31mE    +    where [] = mail.outbox#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointWorkflowEngineTest::test_email_action
Stack Traces | 3.81s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:340: in test_email_action
    self.get_success_response(self.organization.slug, self.project.slug, actions=action_data)
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.integrations.slack.actions.notification.test_slack_notify_service_action.TestInit::test_after
Stack Traces | 3.82s run time
#x1B[1m#x1B[.../actions/notification/test_slack_notify_service_action.py#x1B[0m:102: in test_after
    blocks = mock_post.call_args.kwargs["blocks"]
#x1B[1m#x1B[31mE   AttributeError: 'NoneType' object has no attribute 'kwargs'#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_notify_users_does_email
Stack Traces | 3.9s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:552: in test_notify_users_does_email
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.rules.processing.test_processor.RuleProcessorTestFilters::test_msteams_title_link_notification_uuid
Stack Traces | 3.92s run time
#x1B[1m#x1B[.../rules/processing/test_processor.py#x1B[0m:1040: in test_msteams_title_link_notification_uuid
    callback(self.group_event, futures)
#x1B[1m#x1B[.../actions/integrations/base.py#x1B[0m:57: in wrapped_callback
    callback(event, futures)
#x1B[1m#x1B[.../msteams/actions/notification.py#x1B[0m:55: in send_notification
    ).build_group_card(notification_uuid=notification_uuid)
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_invalidates_snooze_issue_platform
Stack Traces | 3.92s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1713: in test_invalidates_snooze_issue_platform
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7efc5573b650>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_email_with_reply_to
Stack Traces | 3.93s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:246: in test_email_with_reply_to
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_invalidates_snooze_issue_platform
Stack Traces | 3.93s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1713: in test_invalidates_snooze_issue_platform
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f2b0841ea80>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointTest::test_name_action_default
Stack Traces | 3.93s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:86: in test_name_action_default
    self.get_success_response(self.organization.slug, self.project.slug, actions=action_data)
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_crons_issue_alert_user_block
Stack Traces | 3.94s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:173: in test_crons_issue_alert_user_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_rule_processor_backwards_compat
Stack Traces | 3.94s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:344: in test_rule_processor_backwards_compat
    mock_processor.assert_called_once_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'RuleProcessor' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_group_inbox_regression
Stack Traces | 3.95s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:799: in test_group_inbox_regression
    mock_processor.assert_called_with(EventMatcher(new_event), True, True, False, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f9c1cb4eb10>, True, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.digests.test_notifications.BindRecordsTestCase::test_filters_invalid_rules
Stack Traces | 3.96s run time
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:59: in test_filters_invalid_rules
    (record,) = _bind_records([self.record], self.group_mapping, {})
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/functools.py#x1B[0m:1039: in __get__
    val = self.func(instance)
#x1B[1m#x1B[.../sentry/digests/test_notifications.py#x1B[0m:39: in record
    return event_to_record(self.event, (self.rule,), self.notification_uuid)
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_simple_notification_perf
Stack Traces | 3.97s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:472: in test_simple_notification_perf
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_actions.NotifyEmailTest::test_full_integration_fallthrough_not_provided
Stack Traces | 3.99s run time
#x1B[1m#x1B[.../sentry/mail/test_actions.py#x1B[0m:249: in test_full_integration_fallthrough_not_provided
    assert len(mail.outbox) == 1
#x1B[1m#x1B[31mE   assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = len([])#x1B[0m
#x1B[1m#x1B[31mE    +    where [] = mail.outbox#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_rule_processor_buffer_values
Stack Traces | 4.02s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:423: in test_rule_processor_buffer_values
    assert MockAction.return_value.after.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <Mock name='mock().after' id='140040833754048'>.call_count#x1B[0m
#x1B[1m#x1B[31mE    +    where <Mock name='mock().after' id='140040833754048'> = <Mock name='mock()' spec='EventAction' id='140041108153616'>.after#x1B[0m
#x1B[1m#x1B[31mE    +      where <Mock name='mock()' spec='EventAction' id='140041108153616'> = <Mock id='140040837965408'>.return_value#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_simple_notification_generic_no_evidence
Stack Traces | 4.03s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:452: in test_simple_notification_generic_no_evidence
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_issue_with_only_one_rule
Stack Traces | 4.07s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:405: in test_issue_with_only_one_rule
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupFeedbackTest::test_group_refresh
Stack Traces | 4.1s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:450: in test_group_refresh
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fc9d0c51020>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointWorkflowEngineTest::test_sample_event_raises_exceptions_workflow_engine
Stack Traces | 4.12s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:306: in test_sample_event_raises_exceptions_workflow_engine
    assert mock_create_issue.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <MagicMock name='create_issue' id='140564352918800'>.call_count#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_issue_owners_block
Stack Traces | 4.12s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:370: in test_issue_alert_issue_owners_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupGenericTest::test_group_refresh
Stack Traces | 4.12s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:450: in test_group_refresh
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fc9d0c4be30>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.notifications.notifications.test_digests.DigestNotificationTest::test_sends_alert_rule_notification_to_each_member
Stack Traces | 4.13s run time
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:171: in test_sends_alert_rule_notification_to_each_member
    self.run_test(event_count=1)
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:78: in run_test
    self.add_event(f"group-{i}", backend, "error")
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:64: in add_event
    self.key, event_to_record(event, [self.rule]), increment_delay=0, maximum_delay=0
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_maintains_valid_snooze
Stack Traces | 4.13s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1865: in test_maintains_valid_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7fcebce6e9f0>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointWorkflowEngineTest::test_name_action_with_custom_name
Stack Traces | 4.14s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:272: in test_name_action_with_custom_name
    self.get_success_response(
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.tasks.test_digests.DeliverDigestTest::test_member_key
Stack Traces | 4.14s run time
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:69: in test_member_key
    self.run_test(f"mail:p:{self.project.id}:Member:{self.user.id}")
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:39: in run_test
    event_to_record(event, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.notifications.notifications.test_digests.DigestNotificationTest::test_sends_digest_to_every_member
Stack Traces | 4.15s run time
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:111: in test_sends_digest_to_every_member
    self.run_test(event_count=event_count, performance_issues=True, generic_issues=True)
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:78: in run_test
    self.add_event(f"group-{i}", backend, "error")
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:64: in add_event
    self.key, event_to_record(event, [self.rule]), increment_delay=0, maximum_delay=0
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_disabled_org_integration_for_team
Stack Traces | 4.16s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:600: in test_disabled_org_integration_for_team
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_generic_metrics_backend_counter
Stack Traces | 4.16s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:3436: in test_generic_metrics_backend_counter
    metric_incr_mock.assert_any_call(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:1048: in assert_any_call
    raise AssertionError(
#x1B[1m#x1B[31mE   AssertionError: incr('sentry.tasks.post_process.post_process_group.completed', tags={'issue_category': 'error', 'pipeline': 'process_rules'}) call not found#x1B[0m
tests.sentry.integrations.msteams.notifications.test_issue_alert.MSTeamsIssueAlertNotificationTest::test_issue_alert_owners
Stack Traces | 4.17s run time
#x1B[1m#x1B[.../msteams/notifications/test_issue_alert.py#x1B[0m:103: in test_issue_alert_owners
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_simple_notification_generic
Stack Traces | 4.19s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:396: in test_simple_notification_generic
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupAggregateEventTest::test_invalidates_snooze_issue_platform
Stack Traces | 4.2s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1713: in test_invalidates_snooze_issue_platform
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f5a9d297770>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest_single_record
Stack Traces | 4.23s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1706: in test_notify_digest_single_record
    digest = build_digest(self.project, (event_to_record(event, (rule,)),))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_invalidates_snooze
Stack Traces | 4.25s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1779: in test_invalidates_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f7e9e16fe30>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.tasks.test_digests.DeliverDigestTest::test_new_key
Stack Traces | 4.28s run time
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:57: in test_new_key
    self.run_test(f"mail:p:{self.project.id}:IssueOwners:")
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:39: in run_test
    event_to_record(event, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest
Stack Traces | 4.3s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1452: in test_notify_digest
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_group_last_seen_buffer
Stack Traces | 4.36s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:483: in test_group_last_seen_buffer
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f9b47483410>, False, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_rule_processor_backwards_compat
Stack Traces | 4.36s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:344: in test_rule_processor_backwards_compat
    mock_processor.assert_called_once_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'RuleProcessor' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_rule_processor
Stack Traces | 4.39s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:365: in test_rule_processor
    mock_processor.return_value.apply.assert_called_once_with()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'apply' to be called once. Called 0 times.#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_someone_else_snoozes_themself
Stack Traces | 4.41s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:332: in test_someone_else_snoozes_themself
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest_replay_id
Stack Traces | 4.43s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1508: in test_notify_digest_replay_id
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupPerformanceTest::test_group_refresh
Stack Traces | 4.43s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:450: in test_group_refresh
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f5226808a70>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_issue_message_builder
Stack Traces | 4.44s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:307: in test_issue_message_builder
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_team_fallback
Stack Traces | 4.44s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:952: in test_issue_alert_team_fallback
    self.adapter.notify(notification, ActionTargetType.TEAM, self.team.id)
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.api.endpoints.test_project_rule_actions.ProjectRuleActionsEndpointWorkflowEngineTest::test_name_action_default
Stack Traces | 4.45s run time
#x1B[1m#x1B[.../api/endpoints/test_project_rule_actions.py#x1B[0m:239: in test_name_action_default
    self.get_success_response(self.organization.slug, self.project.slug, actions=action_data)
#x1B[1m#x1B[.../sentry/testutils/cases.py#x1B[0m:628: in get_success_response
    assert_status_code(response, 200, 300)
#x1B[1m#x1B[.../sentry/testutils/asserts.py#x1B[0m:47: in assert_status_code
    assert minimum <= response.status_code < maximum, (
#x1B[1m#x1B[31mE   AssertionError: (400, b'{"actions":["An unexpected error occurred. Error ID: \'None\'"]}')#x1B[0m
#x1B[1m#x1B[31mE   assert 400 < 300#x1B[0m
#x1B[1m#x1B[31mE    +  where 400 = <Response status_code=400, "application/json">.status_code#x1B[0m
tests.sentry.rules.processing.test_processor.RuleProcessorTestFilters::test_discord_title_link_notification_uuid
Stack Traces | 4.45s run time
#x1B[1m#x1B[.../rules/processing/test_processor.py#x1B[0m:1073: in test_discord_title_link_notification_uuid
    callback(self.group_event, futures)
#x1B[1m#x1B[.../actions/integrations/base.py#x1B[0m:57: in wrapped_callback
    callback(event, futures)
#x1B[1m#x1B[.../actions/issue_alert/notification.py#x1B[0m:55: in send_notification
    ).build(notification_uuid=notification_uuid)
#x1B[1m#x1B[.../discord/message_builder/issues.py#x1B[0m:68: in build
    rule_id = int(get_key_from_rule_data(self.rules[0], "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_resolved_issue_message
Stack Traces | 4.48s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:421: in test_resolved_issue_message
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.notifications.test_notifications.ActivityNotificationTest::test_sends_issue_notification
Stack Traces | 4.49s run time
#x1B[1m#x1B[.../sentry/notifications/test_notifications.py#x1B[0m:572: in test_sends_issue_notification
    msg = mail.outbox[0]
#x1B[1m#x1B[31mE   IndexError: list index out of range#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyTest::test_simple_notification
Stack Traces | 4.49s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:184: in test_simple_notification
    self.adapter.notify(
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest_user_does_not_exist
Stack Traces | 4.5s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1782: in test_notify_digest_user_does_not_exist
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_team_issue_owners_user_settings_off_digests
Stack Traces | 4.52s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:686: in test_issue_alert_team_issue_owners_user_settings_off_digests
    backend.add(key, event_to_record(event, [rule]), increment_delay=0, maximum_delay=0)
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_service_hook_fires_on_alert
Stack Traces | 4.52s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:544: in test_service_hook_fires_on_alert
    mock_process_service_hook.delay.assert_called_once_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:988: in assert_called_once_with
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'delay' to be called once. Called 0 times.#x1B[0m
tests.sentry.tasks.test_digests.DeliverDigestTest::test_old_key
Stack Traces | 4.52s run time
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:53: in test_old_key
    self.run_test(f"mail:p:{self.project.id}")
#x1B[1m#x1B[.../sentry/tasks/test_digests.py#x1B[0m:39: in run_test
    event_to_record(event, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_team_new_project
Stack Traces | 4.52s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:853: in test_issue_alert_team_new_project
    self.adapter.notify(notification, ActionTargetType.TEAM, self.team.id)
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_assigned_issue_message
Stack Traces | 4.63s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:452: in test_assigned_issue_message
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_archived_issue_message
Stack Traces | 4.67s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:437: in test_archived_issue_message
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.notifications.notifications.test_digests.DigestSlackNotification::test_slack_digest_notification_block
Stack Traces | 4.7s run time
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:290: in test_slack_digest_notification_block
    event_to_record(event1, [rule], notification_uuid),
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_maintains_valid_snooze
Stack Traces | 4.71s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:1865: in test_maintains_valid_snooze
    mock_processor.assert_called_with(EventMatcher(event), True, False, True, False, False)
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f8404993770>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_dont_notify_digest_snoozed
Stack Traces | 4.72s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1547: in test_dont_notify_digest_snoozed
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.msteams.test_message_builder.MSTeamsMessageBuilderTest::test_issue_without_description
Stack Traces | 4.82s run time
#x1B[1m#x1B[.../integrations/msteams/test_message_builder.py#x1B[0m:397: in test_issue_without_description
    ).build_group_card()
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:291: in build_group_card
    self.build_group_footer(),
#x1B[1m#x1B[.../msteams/card_builder/issues.py#x1B[0m:133: in build_group_footer
    text = build_footer(
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:301: in build_footer
    rule_url = build_rule_url(rules[0], group, project)
#x1B[1m#x1B[.../integrations/messaging/message_builder.py#x1B[0m:278: in build_rule_url
    rule_id = get_key_from_rule_data(rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.sentry_apps.tasks.test_sentry_apps.TestSendAlertEvent::test_send_alert_event_with_additional_payload
Stack Traces | 4.82s run time
#x1B[1m#x1B[.../sentry_apps/tasks/test_sentry_apps.py#x1B[0m:310: in test_send_alert_event_with_additional_payload
    notify_sentry_app(group_event, [rule_future])
#x1B[1m#x1B[.../sentry_apps/tasks/sentry_apps.py#x1B[0m:748: in notify_sentry_app
    id = get_key_from_rule_data(f.rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest_subject_prefix
Stack Traces | 4.84s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1734: in test_notify_digest_subject_prefix
    self.project, (event_to_record(event, (rule,)), event_to_record(event2, (rule,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.notifications.notifications.test_digests.DigestNotificationTest::test_digest_email_uses_user_timezone
Stack Traces | 4.86s run time
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:205: in test_digest_email_uses_user_timezone
    self.add_event(f"group-{i}", backend, "error")
#x1B[1m#x1B[.../notifications/notifications/test_digests.py#x1B[0m:64: in add_event
    self.key, event_to_record(event, [self.rule]), increment_delay=0, maximum_delay=0
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_team_issue_owners_block
Stack Traces | 4.86s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:521: in test_issue_alert_team_issue_owners_block
    notification.send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_notify_digest_snooze_one_rule
Stack Traces | 4.87s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1585: in test_notify_digest_snooze_one_rule
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule2,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_dont_notify_digest_snoozed_multiple_rules_global_snooze
Stack Traces | 4.95s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1681: in test_dont_notify_digest_snoozed_multiple_rules_global_snooze
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule2,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.sentry_apps.tasks.test_sentry_apps.TestSendAlertEvent::test_send_alert_event
Stack Traces | 4.96s run time
#x1B[1m#x1B[.../sentry_apps/tasks/test_sentry_apps.py#x1B[0m:230: in test_send_alert_event
    notify_sentry_app(group_event, [rule_future])
#x1B[1m#x1B[.../sentry_apps/tasks/sentry_apps.py#x1B[0m:748: in notify_sentry_app
    id = get_key_from_rule_data(f.rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_group_refresh
Stack Traces | 5.04s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:450: in test_group_refresh
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f50602a84d0>, True, False, True, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.sentry_apps.tasks.test_sentry_apps.TestSendAlertEvent::test_send_alert_event_with_3p_failure
Stack Traces | 5.07s run time
#x1B[1m#x1B[.../sentry_apps/tasks/test_sentry_apps.py#x1B[0m:504: in test_send_alert_event_with_3p_failure
    notify_sentry_app(group_event, [rule_future])
#x1B[1m#x1B[.../sentry_apps/tasks/sentry_apps.py#x1B[0m:748: in notify_sentry_app
    id = get_key_from_rule_data(f.rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_group_last_seen_buffer
Stack Traces | 5.34s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:483: in test_group_last_seen_buffer
    mock_processor.assert_called_with(
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:968: in assert_called_with
    raise AssertionError(error_message)
#x1B[1m#x1B[31mE   AssertionError: expected call not found.#x1B[0m
#x1B[1m#x1B[31mE   Expected: RuleProcessor(<tests.sentry.tasks.test_post_process.EventMatcher object at 0x7f2b7ff6b410>, False, True, False, False, False)#x1B[0m
#x1B[1m#x1B[31mE     Actual: not called.#x1B[0m
tests.sentry.workflow_engine.test_integration.TestWorkflowEngineIntegrationFromIssuePlatform::test_workflow_engine__workflows__other_events
Stack Traces | 5.36s run time
#x1B[1m#x1B[.../sentry/workflow_engine/test_integration.py#x1B[0m:178: in test_workflow_engine__workflows__other_events
    mock_process_workflow.assert_not_called()
#x1B[1m#x1B[.../hostedtoolcache/Python/3.13.1.../x64/lib/python3.13/unittest/mock.py#x1B[0m:938: in assert_not_called
    raise AssertionError(msg)
#x1B[1m#x1B[31mE   AssertionError: Expected 'apply_async' to not have been called. Called 1 times.#x1B[0m
#x1B[1m#x1B[31mE   Calls: [call(kwargs={'event_id': '25e9795c798f48bb95dc9ac118b5f6de', 'occurrence_id': 'e788091cc67d42f3b15429192b3514ca', 'group_id': 347, 'group_state': {'id': 347, 'is_new': False, 'is_regression': False, 'is_new_group_environment': True}, 'has_reappeared': False, 'has_escalated': False, 'start_timestamp_seconds': 1764785646.6422038}, headers={'sentry-propagate-traces': False})].#x1B[0m
tests.sentry.tasks.test_post_process.PostProcessGroupErrorTest::test_rule_processor_buffer_values
Stack Traces | 5.44s run time
#x1B[1m#x1B[.../sentry/tasks/test_post_process.py#x1B[0m:423: in test_rule_processor_buffer_values
    assert MockAction.return_value.after.call_count == 1
#x1B[1m#x1B[31mE   AssertionError: assert 0 == 1#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = <Mock name='mock().after' id='140041109220592'>.call_count#x1B[0m
#x1B[1m#x1B[31mE    +    where <Mock name='mock().after' id='140041109220592'> = <Mock name='mock()' spec='EventAction' id='140041109220928'>.after#x1B[0m
#x1B[1m#x1B[31mE    +      where <Mock name='mock()' spec='EventAction' id='140041109220928'> = <Mock id='140041109219920'>.return_value#x1B[0m
tests.sentry.mail.test_adapter.MailAdapterNotifyDigestTest::test_dont_notify_digest_snoozed_multiple_rules
Stack Traces | 5.51s run time
#x1B[1m#x1B[.../sentry/mail/test_adapter.py#x1B[0m:1635: in test_dont_notify_digest_snoozed_multiple_rules
    project, (event_to_record(event, (rule,)), event_to_record(event2, (rule2,)))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.sentry_apps.tasks.test_sentry_apps.TestSendAlertEvent::test_no_installation
Stack Traces | 5.6s run time
#x1B[1m#x1B[.../sentry_apps/tasks/test_sentry_apps.py#x1B[0m:203: in test_no_installation
    notify_sentry_app(group_event, [rule_future])
#x1B[1m#x1B[.../sentry_apps/tasks/sentry_apps.py#x1B[0m:748: in notify_sentry_app
    id = get_key_from_rule_data(f.rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.sentry_apps.tasks.test_sentry_apps.TestSendAlertEvent::test_send_alert_event_with_groupevent
Stack Traces | 5.62s run time
#x1B[1m#x1B[.../sentry_apps/tasks/test_sentry_apps.py#x1B[0m:422: in test_send_alert_event_with_groupevent
    notify_sentry_app(group_event, [rule_future])
#x1B[1m#x1B[.../sentry_apps/tasks/sentry_apps.py#x1B[0m:748: in notify_sentry_app
    id = get_key_from_rule_data(f.rule, "legacy_rule_id")
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.mail.test_actions.NotifyEmailTest::test_hack_mail_workflow
Stack Traces | 5.95s run time
#x1B[1m#x1B[.../sentry/mail/test_actions.py#x1B[0m:337: in test_hack_mail_workflow
    assert len(mail.outbox) == 3
#x1B[1m#x1B[31mE   assert 0 == 3#x1B[0m
#x1B[1m#x1B[31mE    +  where 0 = len([])#x1B[0m
#x1B[1m#x1B[31mE    +    where [] = mail.outbox#x1B[0m
tests.sentry.integrations.slack.notifications.test_issue_alert.SlackIssueAlertNotificationTest::test_issue_alert_team_block
Stack Traces | 6.02s run time
#x1B[1m#x1B[.../slack/notifications/test_issue_alert.py#x1B[0m:767: in test_issue_alert_team_block
    self.adapter.notify(notification, ActionTargetType.TEAM, self.team.id)
#x1B[1m#x1B[.../sentry/mail/adapter.py#x1B[0m:143: in notify
    ).send()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:353: in send
    shared_context = self.get_context()
#x1B[1m#x1B[.../notifications/notifications/rules.py#x1B[0m:267: in get_context
    context["snooze_alert_url"] = get_snooze_url(
#x1B[1m#x1B[.../notifications/utils/links.py#x1B[0m:180: in get_snooze_url
    rule_id = int(get_key_from_rule_data(rule, "legacy_rule_id"))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.UtilitiesHelpersTestCase::test_get_event_from_groups_in_digest
Stack Traces | 8.08s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:56: in test_get_event_from_groups_in_digest
    records = [event_to_record(event, (rule,)) for event in events]
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.GetPersonalizedDigestsTestCase::test_direct_email
Stack Traces | 17.2s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:281: in test_direct_email
    records = [event_to_record(event, (self.rule,)) for event in self.team1_events]
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.GetPersonalizedDigestsTestCase::test_simple
Stack Traces | 19.9s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:232: in test_simple
    event_to_record(event, (self.rule,))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.GetPersonalizedDigestsTestCase::test_only_everyone
Stack Traces | 21.2s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:399: in test_only_everyone
    records = [event_to_record(event, (self.rule,)) for event in events]
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.GetPersonalizedDigestsTestCase::test_team_without_members
Stack Traces | 23.1s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:329: in test_team_without_members
    event_to_record(event, (rule,))
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m
tests.sentry.digests.test_utilities.GetPersonalizedDigestsTestCase::test_everyone_with_owners
Stack Traces | 23.2s run time
#x1B[1m#x1B[.../sentry/digests/test_utilities.py#x1B[0m:414: in test_everyone_with_owners
    records = [event_to_record(event, (self.rule,)) for event in events + self.team1_events]
#x1B[1m#x1B[.../sentry/digests/notifications.py#x1B[0m:98: in event_to_record
    rule_ids.append(int(get_key_from_rule_data(rule, "legacy_rule_id")))
#x1B[1m#x1B[.../notifications/utils/rules.py#x1B[0m:6: in get_key_from_rule_data
    assert value is not None
#x1B[1m#x1B[31mE   AssertionError#x1B[0m

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@getsantry
Copy link
Contributor

getsantry bot commented Dec 25, 2025

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you remove the label Waiting for: Community, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@getsantry getsantry bot added the Stale label Dec 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants