|
@@ -31,7 +31,7 @@ from sentry.snuba.dataset import Dataset
|
|
|
from sentry.snuba.models import SnubaQuery
|
|
|
from sentry.testutils.cases import TestCase
|
|
|
from sentry.testutils.helpers.datetime import freeze_time
|
|
|
-from sentry.testutils.helpers.features import with_feature
|
|
|
+from sentry.testutils.helpers.features import Feature, with_feature
|
|
|
from sentry.types.integrations import ExternalProviders
|
|
|
|
|
|
from . import FireTest
|
|
@@ -88,16 +88,21 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
target_identifier=str(self.user.id),
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
- assert handler.get_targets() == [(self.user.id, self.user.email)]
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == [(self.user.id, self.user.email)]
|
|
|
|
|
|
def test_rule_snoozed_by_user(self):
|
|
|
action = self.create_alert_rule_trigger_action(
|
|
|
target_type=AlertRuleTriggerAction.TargetType.USER,
|
|
|
target_identifier=str(self.user.id),
|
|
|
)
|
|
|
+
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
self.snooze_rule(user_id=self.user.id, alert_rule=self.incident.alert_rule)
|
|
|
- assert handler.get_targets() == []
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == []
|
|
|
|
|
|
def test_user_rule_snoozed(self):
|
|
|
action = self.create_alert_rule_trigger_action(
|
|
@@ -106,7 +111,9 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
self.snooze_rule(alert_rule=self.incident.alert_rule)
|
|
|
- assert handler.get_targets() == []
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == []
|
|
|
|
|
|
def test_user_alerts_disabled(self):
|
|
|
NotificationSetting.objects.update_settings(
|
|
@@ -121,7 +128,9 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
target_identifier=str(self.user.id),
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
- assert handler.get_targets() == [(self.user.id, self.user.email)]
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == [(self.user.id, self.user.email)]
|
|
|
|
|
|
def test_team(self):
|
|
|
new_user = self.create_user()
|
|
@@ -130,11 +139,13 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
target_type=AlertRuleTriggerAction.TargetType.TEAM,
|
|
|
target_identifier=str(self.team.id),
|
|
|
)
|
|
|
- handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
- assert set(handler.get_targets()) == {
|
|
|
- (self.user.id, self.user.email),
|
|
|
- (new_user.id, new_user.email),
|
|
|
- }
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
+ assert set(handler.get_targets()) == {
|
|
|
+ (self.user.id, self.user.email),
|
|
|
+ (new_user.id, new_user.email),
|
|
|
+ }
|
|
|
|
|
|
def test_rule_snoozed_by_one_user_in_team(self):
|
|
|
new_user = self.create_user()
|
|
@@ -145,9 +156,11 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
self.snooze_rule(user_id=new_user.id, alert_rule=self.incident.alert_rule)
|
|
|
- assert set(handler.get_targets()) == {
|
|
|
- (self.user.id, self.user.email),
|
|
|
- }
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert set(handler.get_targets()) == {
|
|
|
+ (self.user.id, self.user.email),
|
|
|
+ }
|
|
|
|
|
|
def test_team_rule_snoozed(self):
|
|
|
new_user = self.create_user()
|
|
@@ -158,7 +171,9 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
self.snooze_rule(alert_rule=self.incident.alert_rule)
|
|
|
- assert handler.get_targets() == []
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == []
|
|
|
|
|
|
def test_team_alert_disabled(self):
|
|
|
NotificationSetting.objects.update_settings(
|
|
@@ -183,7 +198,9 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
target_identifier=str(self.team.id),
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
- assert set(handler.get_targets()) == {(new_user.id, new_user.email)}
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert set(handler.get_targets()) == {(new_user.id, new_user.email)}
|
|
|
|
|
|
def test_user_email_routing(self):
|
|
|
new_email = "marcos@sentry.io"
|
|
@@ -201,7 +218,9 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
|
|
|
- assert handler.get_targets() == [(self.user.id, new_email)]
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert handler.get_targets() == [(self.user.id, new_email)]
|
|
|
|
|
|
def test_team_email_routing(self):
|
|
|
new_email = "marcos@sentry.io"
|
|
@@ -225,10 +244,12 @@ class EmailActionHandlerGetTargetsTest(TestCase):
|
|
|
target_identifier=str(self.team.id),
|
|
|
)
|
|
|
handler = EmailActionHandler(action, self.incident, self.project)
|
|
|
- assert set(handler.get_targets()) == {
|
|
|
- (self.user.id, new_email),
|
|
|
- (new_user.id, new_email),
|
|
|
- }
|
|
|
+ for flag in (True, False):
|
|
|
+ with Feature({"organizations:notification-settings-v2", flag}):
|
|
|
+ assert set(handler.get_targets()) == {
|
|
|
+ (self.user.id, new_email),
|
|
|
+ (new_user.id, new_email),
|
|
|
+ }
|
|
|
|
|
|
|
|
|
@freeze_time()
|