def run_test(self, incidents, expected_results_list, start=None, end=None): query_params_list = bulk_build_incident_query_params( incidents, start=start, end=end, prewindow=True ) results = bulk_get_incident_event_stats(incidents, query_params_list, data_points=20) for incident, result, expected_results in zip(incidents, results, expected_results_list): # Duration of 300s / 20 data points assert result.rollup == 15 expected_start = start if start else incident.date_started expected_end = end if end else incident.current_end_date expected_start = expected_start - calculate_incident_prewindow( expected_start, expected_end, incident ) assert result.start == expected_start assert result.end == expected_end assert [r["count"] for r in result.data["data"]] == expected_results
def run_test(self, incident, expected_results, start=None, end=None): kwargs = {} if start is not None: kwargs["start"] = start if end is not None: kwargs["end"] = end result = get_incident_event_stats(incident, data_points=20, **kwargs) # Duration of 300s / 20 data points assert result.rollup == 15 expected_start = start if start else incident.date_started expected_end = end if end else incident.current_end_date expected_start = expected_start - calculate_incident_prewindow( expected_start, expected_end, incident) assert result.start == expected_start assert result.end == expected_end assert [r["count"] for r in result.data["data"]] == expected_results
def test(self): closed_incident = create_incident( self.organization, IncidentType.ALERT_TRIGGERED, "Closed", "", QueryAggregations.TOTAL, groups=[self.group], date_started=timezone.now() - timedelta(days=30), ) update_incident_status(closed_incident, IncidentStatus.CLOSED) open_incident = create_incident( self.organization, IncidentType.ALERT_TRIGGERED, "Open", "", QueryAggregations.TOTAL, groups=[self.group], date_started=timezone.now() - timedelta(days=30), ) incidents = [closed_incident, open_incident] changed = False for incident, incident_stats in zip( incidents, bulk_get_incident_stats(incidents)): event_stats = get_incident_event_stats(incident) assert incident_stats["event_stats"].data[ "data"] == event_stats.data["data"] expected_start = incident_stats["event_stats"].start expected_end = incident_stats["event_stats"].end if not changed: expected_start = expected_start - calculate_incident_prewindow( expected_start, expected_end, incident) changed = True assert event_stats.start == expected_start assert event_stats.end == expected_end assert incident_stats["event_stats"].rollup == event_stats.rollup aggregates = get_incident_aggregates(incident) assert incident_stats["total_events"] == aggregates["count"] assert incident_stats["unique_users"] == aggregates["unique_users"]