test_project_events.py 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. from __future__ import absolute_import
  2. from datetime import timedelta
  3. from django.utils import timezone
  4. from django.core.urlresolvers import reverse
  5. from sentry.testutils import APITestCase, SnubaTestCase
  6. class ProjectEventsTest(APITestCase, SnubaTestCase):
  7. def setUp(self):
  8. super(ProjectEventsTest, self).setUp()
  9. self.min_ago = timezone.now() - timedelta(minutes=1)
  10. self.client.cookies['eventstream'] = 'snuba'
  11. def test_simple(self):
  12. self.login_as(user=self.user)
  13. project = self.create_project()
  14. group = self.create_group(project=project)
  15. event_1 = self.create_event('a' * 32, group=group, datetime=self.min_ago)
  16. event_2 = self.create_event('b' * 32, group=group, datetime=self.min_ago)
  17. url = reverse(
  18. 'sentry-api-0-project-events',
  19. kwargs={
  20. 'organization_slug': project.organization.slug,
  21. 'project_slug': project.slug,
  22. }
  23. )
  24. response = self.client.get(url, format='json')
  25. assert response.status_code == 200, response.content
  26. assert len(response.data) == 2
  27. assert sorted(map(lambda x: x['eventID'], response.data)) == sorted(
  28. [
  29. event_1.event_id,
  30. event_2.event_id,
  31. ]
  32. )
  33. def test_message_search(self):
  34. self.login_as(user=self.user)
  35. project = self.create_project()
  36. group = self.create_group(project=project)
  37. self.create_event('x' * 32, group=group, message="how to make fast", datetime=self.min_ago)
  38. event_2 = self.create_event(
  39. 'y' * 32,
  40. group=group,
  41. message="Delet the Data",
  42. datetime=self.min_ago)
  43. url = reverse(
  44. 'sentry-api-0-project-events',
  45. kwargs={
  46. 'organization_slug': project.organization.slug,
  47. 'project_slug': project.slug,
  48. }
  49. )
  50. response = self.client.get(url, {'query': 'delet'}, format='json')
  51. assert response.status_code == 200, response.content
  52. assert len(response.data) == 1
  53. assert response.data[0]['eventID'] == event_2.event_id
  54. assert response.data[0]['message'] == 'Delet the Data'
  55. def test_filters_based_on_retention(self):
  56. self.login_as(user=self.user)
  57. project = self.create_project()
  58. group = self.create_group(project=project)
  59. two_days_ago = timezone.now() - timedelta(days=2)
  60. self.create_event('c' * 32, group=group, datetime=two_days_ago)
  61. event_2 = self.create_event('d' * 32, group=group, datetime=self.min_ago)
  62. with self.options({'system.event-retention-days': 1}):
  63. url = reverse(
  64. 'sentry-api-0-project-events',
  65. kwargs={
  66. 'organization_slug': project.organization.slug,
  67. 'project_slug': project.slug,
  68. }
  69. )
  70. response = self.client.get(url, format='json')
  71. assert response.status_code == 200, response.content
  72. assert len(response.data) == 1
  73. assert response.data[0]['eventID'] == event_2.event_id