test_group_events_oldest.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from __future__ import absolute_import
  2. import six
  3. from datetime import timedelta
  4. from django.utils import timezone
  5. from sentry import options
  6. from sentry.models import Group
  7. from sentry.testutils import APITestCase, SnubaTestCase
  8. class GroupEventsOldestTest(APITestCase, SnubaTestCase):
  9. def setUp(self):
  10. super(GroupEventsOldestTest, self).setUp()
  11. self.login_as(user=self.user)
  12. project = self.create_project()
  13. min_ago = (timezone.now() - timedelta(minutes=1)).isoformat()[:19]
  14. two_min_ago = (timezone.now() - timedelta(minutes=2)).isoformat()[:19]
  15. self.event1 = self.store_event(
  16. data={
  17. 'event_id': 'a' * 32,
  18. 'environment': 'staging',
  19. 'fingerprint': ['group_1'],
  20. 'timestamp': two_min_ago
  21. },
  22. project_id=project.id,
  23. )
  24. self.event2 = self.store_event(
  25. data={
  26. 'event_id': 'b' * 32,
  27. 'environment': 'production',
  28. 'fingerprint': ['group_1'],
  29. 'timestamp': min_ago
  30. },
  31. project_id=project.id,
  32. )
  33. self.group = Group.objects.first()
  34. def test_simple(self):
  35. url = u'/api/0/issues/{}/events/oldest/'.format(self.group.id)
  36. response = self.client.get(url, format='json')
  37. assert response.status_code == 200
  38. assert response.data['id'] == six.text_type(self.event1.id)
  39. def test_snuba_no_environment(self):
  40. options.set('snuba.events-queries.enabled', True)
  41. self.test_simple()
  42. def test_environment(self):
  43. options.set('snuba.events-queries.enabled', True)
  44. url = u'/api/0/issues/{}/events/oldest/'.format(self.group.id)
  45. response = self.client.get(url, format='json', data={'environment': ['production']})
  46. assert response.status_code == 200
  47. assert response.data['id'] == six.text_type(self.event2.id)