22
33from sentry .grouping .grouptype import ErrorGroupType
44from sentry .incidents .grouptype import MetricIssue
5- from sentry .types .group import PriorityLevel
65from sentry .utils .registry import NoRegistrationExistsError
76from sentry .workflow_engine .models import Action
87from sentry .workflow_engine .types import WorkflowEventData
9- from tests .sentry .notifications .notification_action .test_metric_alert_registry_handlers import (
10- MetricAlertHandlerBase ,
11- )
8+ from tests .sentry .workflow_engine .test_base import BaseWorkflowTest
129
1310
14- class TestNotificationActionHandler (MetricAlertHandlerBase ):
11+ class TestNotificationActionHandler (BaseWorkflowTest ):
1512 def setUp (self ) -> None :
1613 super ().setUp ()
1714 self .project = self .create_project ()
@@ -20,6 +17,18 @@ def setUp(self) -> None:
2017 self .group , self .event , self .group_event = self .create_group_event ()
2118 self .event_data = WorkflowEventData (event = self .group_event , group = self .group )
2219
20+ @mock .patch ("sentry.notifications.notification_action.utils.execute_via_issue_alert_handler" )
21+ def test_execute_without_group_type (
22+ self , mock_execute_via_issue_alert_handler : mock .MagicMock
23+ ) -> None :
24+ """Test that execute does nothing when detector has no group_type"""
25+ self .detector .type = ""
26+ self .action .trigger (self .event_data , self .detector )
27+
28+ mock_execute_via_issue_alert_handler .assert_called_once_with (
29+ self .event_data , self .action , self .detector
30+ )
31+
2332 @mock .patch (
2433 "sentry.notifications.notification_action.registry.group_type_notification_registry.get"
2534 )
@@ -31,7 +40,7 @@ def test_execute_error_group_type(self, mock_registry_get: mock.MagicMock) -> No
3140 mock_handler = mock .Mock ()
3241 mock_registry_get .return_value = mock_handler
3342
34- self .action .trigger (self .event_data )
43+ self .action .trigger (self .event_data , self . detector )
3544
3645 mock_registry_get .assert_called_once_with (ErrorGroupType .slug )
3746 mock_handler .handle_workflow_action .assert_called_once_with (
@@ -47,25 +56,10 @@ def test_execute_metric_alert_type(self, mock_registry_get: mock.MagicMock) -> N
4756 self .detector .config = {"threshold_period" : 1 , "detection_type" : "static" }
4857 self .detector .save ()
4958
50- self .group .type = MetricIssue .type_id
51- self .group .save ()
52-
53- group , _ , group_event = self .create_group_event (
54- group_type_id = MetricIssue .type_id ,
55- occurrence = self .create_issue_occurrence (
56- priority = PriorityLevel .HIGH .value ,
57- level = "error" ,
58- evidence_data = {
59- "detector_id" : self .detector .id ,
60- },
61- ),
62- )
63- self .event_data = WorkflowEventData (event = group_event , group = group )
64-
6559 mock_handler = mock .Mock ()
6660 mock_registry_get .return_value = mock_handler
6761
68- self .action .trigger (self .event_data )
62+ self .action .trigger (self .event_data , self . detector )
6963
7064 mock_registry_get .assert_called_once_with (MetricIssue .slug )
7165 mock_handler .handle_workflow_action .assert_called_once_with (
@@ -78,15 +72,15 @@ def test_execute_metric_alert_type(self, mock_registry_get: mock.MagicMock) -> N
7872 side_effect = NoRegistrationExistsError ,
7973 )
8074 @mock .patch ("sentry.notifications.notification_action.utils.logger" )
81- def test_execute_unknown_detector (
75+ def test_execute_unknown_group_type (
8276 self ,
8377 mock_logger : mock .MagicMock ,
8478 mock_registry_get : mock .MagicMock ,
8579 mock_execute_via_issue_alert_handler : mock .MagicMock ,
8680 ) -> None :
87- """Test that execute does nothing when we can't find the detector """
81+ """Test that execute does nothing when detector has no group_type """
8882
89- self .action .trigger (self .event_data )
83+ self .action .trigger (self .event_data , self . detector )
9084
9185 mock_logger .warning .assert_called_once_with (
9286 "group_type_notification_registry.get.NoRegistrationExistsError" ,
0 commit comments