|
2 | 2 | import uuid
|
3 | 3 | from time import time
|
4 | 4 | from unittest.mock import patch
|
5 |
| -from urllib.parse import parse_qs |
| 5 | +from urllib.parse import parse_qs, urlparse |
6 | 6 |
|
7 | 7 | import responses
|
8 | 8 | from django.conf import settings
|
@@ -54,6 +54,13 @@ def get_attachment():
|
54 | 54 | return attachments[0], data["text"][0]
|
55 | 55 |
|
56 | 56 |
|
| 57 | +def get_notification_uuid(url: str): |
| 58 | + query_params = parse_qs(urlparse(url).query) |
| 59 | + notification_uuid = query_params["notification_uuid"][0] |
| 60 | + assert len(notification_uuid) > 1 |
| 61 | + return notification_uuid |
| 62 | + |
| 63 | + |
57 | 64 | # The analytics event `name` was called with `kwargs` being a subset of its properties
|
58 | 65 | def analytics_called_with_args(fn, name, **kwargs):
|
59 | 66 | for call_args, call_kwargs in fn.call_args_list:
|
@@ -216,19 +223,22 @@ def test_sends_resolution_notification(self, record_analytics):
|
216 | 223 | attachment["footer"]
|
217 | 224 | == f"{self.project.slug} | <http://testserver/settings/account/notifications/workflow/?referrer=resolved_activity-slack-user|Notification Settings>"
|
218 | 225 | )
|
| 226 | + notification_uuid = get_notification_uuid(attachment["title_link"]) |
219 | 227 | assert analytics_called_with_args(
|
220 | 228 | record_analytics,
|
221 | 229 | "integrations.email.notification_sent",
|
222 | 230 | user_id=self.user.id,
|
223 | 231 | organization_id=self.organization.id,
|
224 | 232 | group_id=self.group.id,
|
| 233 | + notification_uuid=notification_uuid, |
225 | 234 | )
|
226 | 235 | assert analytics_called_with_args(
|
227 | 236 | record_analytics,
|
228 | 237 | "integrations.slack.notification_sent",
|
229 | 238 | user_id=self.user.id,
|
230 | 239 | organization_id=self.organization.id,
|
231 | 240 | group_id=self.group.id,
|
| 241 | + notification_uuid=notification_uuid, |
232 | 242 | )
|
233 | 243 |
|
234 | 244 | @responses.activate
|
@@ -336,19 +346,22 @@ def test_sends_regression_notification(self, record_analytics):
|
336 | 346 | attachment["footer"]
|
337 | 347 | == f"{self.project.slug} | <http://testserver/settings/account/notifications/workflow/?referrer=regression_activity-slack-user|Notification Settings>"
|
338 | 348 | )
|
| 349 | + notification_uuid = get_notification_uuid(attachment["title_link"]) |
339 | 350 | assert analytics_called_with_args(
|
340 | 351 | record_analytics,
|
341 | 352 | "integrations.email.notification_sent",
|
342 | 353 | user_id=self.user.id,
|
343 | 354 | organization_id=self.organization.id,
|
344 | 355 | group_id=group.id,
|
| 356 | + notification_uuid=notification_uuid, |
345 | 357 | )
|
346 | 358 | assert analytics_called_with_args(
|
347 | 359 | record_analytics,
|
348 | 360 | "integrations.slack.notification_sent",
|
349 | 361 | user_id=self.user.id,
|
350 | 362 | organization_id=self.organization.id,
|
351 | 363 | group_id=group.id,
|
| 364 | + notification_uuid=notification_uuid, |
352 | 365 | )
|
353 | 366 |
|
354 | 367 | @responses.activate
|
@@ -390,19 +403,22 @@ def test_sends_resolved_in_release_notification(self, record_analytics):
|
390 | 403 | attachment["footer"]
|
391 | 404 | == f"{self.project.slug} | <http://testserver/settings/account/notifications/workflow/?referrer=resolved_in_release_activity-slack-user|Notification Settings>"
|
392 | 405 | )
|
| 406 | + notification_uuid = get_notification_uuid(attachment["title_link"]) |
393 | 407 | assert analytics_called_with_args(
|
394 | 408 | record_analytics,
|
395 | 409 | "integrations.email.notification_sent",
|
396 | 410 | user_id=self.user.id,
|
397 | 411 | organization_id=self.organization.id,
|
398 | 412 | group_id=self.group.id,
|
| 413 | + notification_uuid=notification_uuid, |
399 | 414 | )
|
400 | 415 | assert analytics_called_with_args(
|
401 | 416 | record_analytics,
|
402 | 417 | "integrations.slack.notification_sent",
|
403 | 418 | user_id=self.user.id,
|
404 | 419 | organization_id=self.organization.id,
|
405 | 420 | group_id=self.group.id,
|
| 421 | + notification_uuid=notification_uuid, |
406 | 422 | )
|
407 | 423 |
|
408 | 424 | @responses.activate
|
@@ -468,17 +484,21 @@ def test_sends_issue_notification(self, record_analytics):
|
468 | 484 | attachment["footer"]
|
469 | 485 | == f"{self.project.slug} | <http://testserver/settings/account/notifications/alerts/?referrer=issue_alert-slack-user|Notification Settings>"
|
470 | 486 | )
|
| 487 | + notification_uuid = get_notification_uuid(attachment["title_link"]) |
| 488 | + assert len(notification_uuid) > 1 |
471 | 489 | assert analytics_called_with_args(
|
472 | 490 | record_analytics,
|
473 | 491 | "integrations.email.notification_sent",
|
474 | 492 | user_id=self.user.id,
|
475 | 493 | organization_id=self.organization.id,
|
476 | 494 | group_id=event.group_id,
|
| 495 | + notification_uuid=notification_uuid, |
477 | 496 | )
|
478 | 497 | assert analytics_called_with_args(
|
479 | 498 | record_analytics,
|
480 | 499 | "integrations.slack.notification_sent",
|
481 | 500 | user_id=self.user.id,
|
482 | 501 | organization_id=self.organization.id,
|
483 | 502 | group_id=event.group_id,
|
| 503 | + notification_uuid=notification_uuid, |
484 | 504 | )
|
0 commit comments