Example #1
0
    def test_return_multiple_hashes(self):
        self.login_as(user=self.user)

        # remove microseconds and timezone from iso format cause that's what store_event expects
        min_ago = (timezone.now() - timedelta(minutes=1)).isoformat()[:19]
        two_min_ago = (timezone.now() - timedelta(minutes=2)).isoformat()[:19]

        event1 = self.store_event(
            data={
                'event_id': 'a' * 32,
                'message': 'message',
                'timestamp': two_min_ago,
                'stacktrace': copy.deepcopy(DEFAULT_EVENT_DATA['stacktrace']),
                'fingerprint': ['group-1']
            },
            project_id=self.project.id,
        )

        event2 = self.store_event(
            data={
                'event_id': 'b' * 32,
                'message': 'message2',
                'timestamp': min_ago,
                'fingerprint': ['group-2']
            },
            project_id=self.project.id,
        )

        # Merge the events
        eventstream = SnubaEventStream()
        state = eventstream.start_merge(
            self.project.id,
            [event2.group_id],
            event1.group_id
        )

        eventstream.end_merge(state)

        url = u'/api/0/issues/{}/hashes/'.format(event1.group_id)
        response = self.client.get(url, format='json')

        assert response.status_code == 200, response.content
        assert len(response.data) == 2

        primary_hashes = [hash['id'] for hash in response.data]
        assert primary_hashes == [event2.get_primary_hash(), event1.get_primary_hash()]
Example #2
0
    def test_return_multiple_hashes(self):
        self.login_as(user=self.user)

        min_ago = iso_format(before_now(minutes=1))
        two_min_ago = iso_format(before_now(minutes=2))

        event1 = self.store_event(
            data={
                "event_id": "a" * 32,
                "message": "message",
                "timestamp": two_min_ago,
                "stacktrace": copy.deepcopy(DEFAULT_EVENT_DATA["stacktrace"]),
                "fingerprint": ["group-1"],
            },
            project_id=self.project.id,
        )

        event2 = self.store_event(
            data={
                "event_id": "b" * 32,
                "message": "message2",
                "timestamp": min_ago,
                "fingerprint": ["group-2"],
            },
            project_id=self.project.id,
        )

        # Merge the events
        eventstream = SnubaEventStream()
        state = eventstream.start_merge(self.project.id, [event2.group_id],
                                        event1.group_id)

        eventstream.end_merge(state)

        url = u"/api/0/issues/{}/hashes/".format(event1.group_id)
        response = self.client.get(url, format="json")

        assert response.status_code == 200, response.content
        assert len(response.data) == 2

        primary_hashes = [hash["id"] for hash in response.data]
        assert primary_hashes == [
            event2.get_primary_hash(),
            event1.get_primary_hash()
        ]