コード例 #1
0
    def test_event_stats(self):
        for _ in range(2):
            self.store_event(
                data={
                    "event_id": uuid4().hex,
                    "fingerprint": ["group1"],
                    "timestamp": iso_format(before_now(seconds=1)),
                },
                project_id=self.project.id,
            )
        incident = self.create_incident(
            date_started=timezone.now() - timedelta(hours=2), projects=[self.project], query=""
        )
        snapshot = create_initial_event_stats_snapshot(incident)
        activity = create_incident_activity(
            incident=incident,
            activity_type=IncidentActivityType.COMMENT,
            user=self.user,
            comment="hello",
            event_stats_snapshot=snapshot,
        )
        result = serialize(activity)

        assert result["id"] == six.text_type(activity.id)
        assert result["incidentIdentifier"] == six.text_type(activity.incident.identifier)
        assert result["user"] == serialize(activity.user)
        assert result["type"] == activity.type
        assert result["value"] is None
        assert result["previousValue"] is None
        assert result["comment"] == activity.comment
        event_stats = result["eventStats"]["data"]
        assert [stat[1] for stat in event_stats[:-1]] == [[]] * len(event_stats[:-1])
        assert event_stats[-1][1] == [{"count": 2}]
        assert result["dateCreated"] == activity.date_added
コード例 #2
0
    def test_simple(self):
        incident = self.create_incident(date_started=timezone.now() -
                                        timedelta(hours=2),
                                        projects=[self.project],
                                        query="")
        snapshot = create_initial_event_stats_snapshot(incident)
        activities = [
            create_incident_activity(
                incident=incident,
                activity_type=IncidentActivityType.CREATED,
                user=self.user,
                comment="hello",
                event_stats_snapshot=snapshot,
            ),
            create_incident_activity(
                incident=incident,
                activity_type=IncidentActivityType.COMMENT,
                user=self.user,
                comment="goodbye",
            ),
        ]

        expected = serialize(activities, user=self.user)

        with self.feature("organizations:incidents"):
            resp = self.get_valid_response(incident.organization.slug,
                                           incident.identifier,
                                           desc=0)
        assert resp.data == expected

        expected.reverse()
        with self.feature("organizations:incidents"):
            resp = self.get_valid_response(incident.organization.slug,
                                           incident.identifier)
        assert resp.data == expected
コード例 #3
0
    def test_snapshot(self):
        self.create_event(self.now - timedelta(minutes=2))
        self.create_event(self.now - timedelta(minutes=2))
        self.create_event(self.now - timedelta(minutes=1))
        # Define events outside incident range. Should be included in the
        # snapshot
        self.create_event(self.now - timedelta(minutes=20))
        self.create_event(self.now - timedelta(minutes=30))

        # Too far out, should be excluded
        self.create_event(self.now - timedelta(minutes=100))

        incident = self.create_incident(date_started=self.now -
                                        timedelta(minutes=5),
                                        query='',
                                        projects=[self.project])
        event_stats_snapshot = create_initial_event_stats_snapshot(incident)
        activity = create_incident_activity(
            incident,
            IncidentActivityType.CREATED,
            event_stats_snapshot=event_stats_snapshot,
        )
        assert activity.incident == incident
        assert activity.type == IncidentActivityType.CREATED.value
        assert activity.value is None
        assert activity.previous_value is None

        assert event_stats_snapshot == activity.event_stats_snapshot
        self.assert_notifications_sent(activity)
コード例 #4
0
    def test_snapshot(self):
        self.create_event(self.now - timedelta(minutes=2))
        self.create_event(self.now - timedelta(minutes=2))
        self.create_event(self.now - timedelta(minutes=1))
        # Define events outside incident range. Should be included in the
        # snapshot
        self.create_event(self.now - timedelta(minutes=20))
        self.create_event(self.now - timedelta(minutes=30))

        # Too far out, should be excluded
        self.create_event(self.now - timedelta(minutes=100))

        incident = self.create_incident(date_started=self.now -
                                        timedelta(minutes=5),
                                        query='',
                                        projects=[self.project])
        event_stat_snapshot = create_initial_event_stats_snapshot(incident)
        assert event_stat_snapshot.start == self.now - timedelta(minutes=40)
        assert [row[1] for row in event_stat_snapshot.values] == [1, 1, 2, 1]
コード例 #5
0
    def test_event_stats(self):
        for _ in range(2):
            self.store_event(
                data={
                    'event_id':
                    uuid4().hex,
                    'fingerprint': ['group1'],
                    'timestamp':
                    (timezone.now() - timedelta(seconds=1)).isoformat()[:19]
                },
                project_id=self.project.id,
            )
        incident = self.create_incident(
            date_started=timezone.now() - timedelta(hours=2),
            projects=[self.project],
            query='',
        )
        snapshot = create_initial_event_stats_snapshot(incident)
        activity = create_incident_activity(
            incident=incident,
            activity_type=IncidentActivityType.COMMENT,
            user=self.user,
            comment='hello',
            event_stats_snapshot=snapshot,
        )
        result = serialize(activity)

        assert result['id'] == six.text_type(activity.id)
        assert result['incidentIdentifier'] == six.text_type(
            activity.incident.identifier)
        assert result['user'] == serialize(activity.user)
        assert result['type'] == activity.type
        assert result['value'] is None
        assert result['previousValue'] is None
        assert result['comment'] == activity.comment
        event_stats = result['eventStats']['data']
        assert [stat[1]
                for stat in event_stats[:-1]] == [[]] * len(event_stats[:-1])
        assert event_stats[-1][1] == [{'count': 2}]
        assert result['dateCreated'] == activity.date_added