|
15 | 15 | AlertRuleTriggerAction,
|
16 | 16 | AlertRuleTriggerExclusion,
|
17 | 17 | )
|
| 18 | +from sentry.models.dashboard import Dashboard, DashboardTombstone |
| 19 | +from sentry.models.dashboard_widget import ( |
| 20 | + DashboardWidget, |
| 21 | + DashboardWidgetQuery, |
| 22 | + DashboardWidgetTypes, |
| 23 | +) |
18 | 24 | from sentry.models.environment import Environment
|
19 | 25 | from sentry.models.organization import Organization
|
20 | 26 | from sentry.monitors.models import Monitor, MonitorEnvironment, MonitorType, ScheduleType
|
@@ -92,6 +98,15 @@ def import_export_then_validate(self) -> JSONData:
|
92 | 98 |
|
93 | 99 | return actual
|
94 | 100 |
|
| 101 | + def create_dashboard(self): |
| 102 | + """Re-usable dashboard object for test cases.""" |
| 103 | + |
| 104 | + user = self.create_user() |
| 105 | + org = self.create_organization(owner=user) |
| 106 | + return Dashboard.objects.create( |
| 107 | + title="Dashboard 1", created_by_id=user.id, organization=org |
| 108 | + ) |
| 109 | + |
95 | 110 | def create_monitor(self):
|
96 | 111 | """Re-usable monitor object for test cases."""
|
97 | 112 |
|
@@ -126,6 +141,29 @@ def test_alert_rule_trigger(self):
|
126 | 141 | self.create_alert_rule_trigger_action(alert_rule_trigger=trigger)
|
127 | 142 | return self.import_export_then_validate()
|
128 | 143 |
|
| 144 | + @targets_models(Dashboard) |
| 145 | + def test_dashboard(self): |
| 146 | + self.create_dashboard() |
| 147 | + return self.import_export_then_validate() |
| 148 | + |
| 149 | + @targets_models(DashboardTombstone) |
| 150 | + def test_dashboard_tombstone(self): |
| 151 | + DashboardTombstone.objects.create(organization=self.organization, slug="test-tombstone") |
| 152 | + return self.import_export_then_validate() |
| 153 | + |
| 154 | + @targets_models(DashboardWidget, DashboardWidgetQuery) |
| 155 | + def test_dashboard_widget(self): |
| 156 | + dashboard = self.create_dashboard() |
| 157 | + widget = DashboardWidget.objects.create( |
| 158 | + dashboard=dashboard, |
| 159 | + order=1, |
| 160 | + title="Test Widget", |
| 161 | + display_type=0, |
| 162 | + widget_type=DashboardWidgetTypes.DISCOVER, |
| 163 | + ) |
| 164 | + DashboardWidgetQuery.objects.create(widget=widget, order=1, name="Test Query") |
| 165 | + return self.import_export_then_validate() |
| 166 | + |
129 | 167 | @targets_models(Environment)
|
130 | 168 | def test_environment(self):
|
131 | 169 | self.create_environment()
|
|
0 commit comments