15
15
from sentry .testutils .helpers .notifications import TEST_ISSUE_OCCURRENCE
16
16
from sentry .testutils .silo import assume_test_silo_mode
17
17
from sentry .testutils .skips import requires_snuba
18
+ from sentry .types .rules import RuleFuture
18
19
19
20
pytestmark = [requires_snuba ]
20
21
@@ -35,6 +36,7 @@ class PagerDutyNotifyActionTest(RuleTestCase, PerformanceIssueTestCase):
35
36
rule_cls = PagerDutyNotifyServiceAction
36
37
37
38
def setUp (self ):
39
+ self .project_rule = self .create_project_rule (name = "Check #project-channel" )
38
40
with assume_test_silo_mode (SiloMode .CONTROL ):
39
41
self .integration , org_integration = self .create_provider_integration_for (
40
42
self .organization ,
@@ -66,12 +68,21 @@ def test_applies_correctly(self, mock_record):
66
68
)
67
69
68
70
rule = self .get_rule (
69
- data = {"account" : self .integration .id , "service" : str (self .service ["id" ])}
71
+ data = {
72
+ "account" : self .integration .id ,
73
+ "service" : str (self .service ["id" ]),
74
+ "name" : "Test Alert" ,
75
+ }
70
76
)
71
77
72
78
notification_uuid = "123e4567-e89b-12d3-a456-426614174000"
73
79
74
- results = list (rule .after (event = event , notification_uuid = notification_uuid ))
80
+ results = list (
81
+ rule .after (
82
+ event = event ,
83
+ notification_uuid = notification_uuid ,
84
+ )
85
+ )
75
86
assert len (results ) == 1
76
87
77
88
responses .add (
@@ -83,11 +94,12 @@ def test_applies_correctly(self, mock_record):
83
94
)
84
95
85
96
# Trigger rule callback
86
- results [0 ].callback (event , futures = [])
97
+ rule_future = RuleFuture (rule = self .project_rule , kwargs = results [0 ].kwargs )
98
+ results [0 ].callback (event , futures = [rule_future ])
87
99
data = orjson .loads (responses .calls [0 ].request .body )
88
100
89
101
assert data ["event_action" ] == "trigger"
90
- assert data ["payload" ]["summary" ] == event .message
102
+ assert data ["payload" ]["summary" ] == f"[ { self . project_rule . label } ]: { event .message } "
91
103
assert data ["payload" ]["custom_details" ]["message" ] == event .message
92
104
assert event .group is not None
93
105
assert data ["links" ][0 ]["href" ] == event .group .get_absolute_url (
@@ -97,7 +109,7 @@ def test_applies_correctly(self, mock_record):
97
109
mock_record .assert_called_with (
98
110
"alert.sent" ,
99
111
provider = "pagerduty" ,
100
- alert_id = "" ,
112
+ alert_id = self . project_rule . id ,
101
113
alert_type = "issue_alert" ,
102
114
organization_id = self .organization .id ,
103
115
project_id = event .project_id ,
@@ -111,7 +123,7 @@ def test_applies_correctly(self, mock_record):
111
123
project_id = event .project_id ,
112
124
group_id = event .group_id ,
113
125
notification_uuid = notification_uuid ,
114
- alert_id = None ,
126
+ alert_id = self . project_rule . id ,
115
127
)
116
128
117
129
@responses .activate
@@ -130,13 +142,14 @@ def test_applies_correctly_performance_issue(self):
130
142
)
131
143
132
144
# Trigger rule callback
133
- results [0 ].callback (event , futures = [])
145
+ rule_future = RuleFuture (rule = self .project_rule , kwargs = results [0 ].kwargs )
146
+ results [0 ].callback (event , futures = [rule_future ])
134
147
data = orjson .loads (responses .calls [0 ].request .body )
135
148
136
149
perf_issue_title = "N+1 Query"
137
150
138
151
assert data ["event_action" ] == "trigger"
139
- assert data ["payload" ]["summary" ] == perf_issue_title
152
+ assert data ["payload" ]["summary" ] == f"[ { self . project_rule . label } ]: { perf_issue_title } "
140
153
assert data ["payload" ]["custom_details" ]["title" ] == perf_issue_title
141
154
142
155
@responses .activate
@@ -165,11 +178,15 @@ def test_applies_correctly_generic_issue(self):
165
178
)
166
179
167
180
# Trigger rule callback
168
- results [0 ].callback (group_event , futures = [])
181
+ rule_future = RuleFuture (rule = self .project_rule , kwargs = results [0 ].kwargs )
182
+ results [0 ].callback (group_event , futures = [rule_future ])
169
183
data = orjson .loads (responses .calls [0 ].request .body )
170
184
171
185
assert data ["event_action" ] == "trigger"
172
- assert data ["payload" ]["summary" ] == group_event .occurrence .issue_title
186
+ assert (
187
+ data ["payload" ]["summary" ]
188
+ == f"[{ self .project_rule .label } ]: { group_event .occurrence .issue_title } "
189
+ )
173
190
assert data ["payload" ]["custom_details" ]["title" ] == group_event .occurrence .issue_title
174
191
175
192
def test_render_label_without_severity (self ):
0 commit comments