예제 #1
0
파일: test_logic.py 프로젝트: sxVova/sentry
 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
예제 #2
0
    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
예제 #3
0
    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"]