test_project_events.py 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. from django.core.urlresolvers import reverse
  2. from sentry.testutils import APITestCase, SnubaTestCase
  3. from sentry.testutils.helpers.datetime import before_now, iso_format
  4. from sentry.utils.compat import map
  5. class ProjectEventsTest(APITestCase, SnubaTestCase):
  6. def test_simple(self):
  7. self.login_as(user=self.user)
  8. project = self.create_project()
  9. event_1 = self.store_event(
  10. data={"timestamp": iso_format(before_now(minutes=1))}, project_id=project.id
  11. )
  12. event_2 = self.store_event(
  13. data={"timestamp": iso_format(before_now(minutes=1))}, project_id=project.id
  14. )
  15. url = reverse(
  16. "sentry-api-0-project-events",
  17. kwargs={"organization_slug": project.organization.slug, "project_slug": project.slug},
  18. )
  19. response = self.client.get(url, format="json")
  20. assert response.status_code == 200, response.content
  21. assert len(response.data) == 2
  22. assert sorted(map(lambda x: x["eventID"], response.data)) == sorted(
  23. [event_1.event_id, event_2.event_id]
  24. )
  25. def test_message_search(self):
  26. self.login_as(user=self.user)
  27. project = self.create_project()
  28. self.store_event(
  29. data={"message": "how to make fast", "timestamp": iso_format(before_now(minutes=1))},
  30. project_id=project.id,
  31. )
  32. event_2 = self.store_event(
  33. data={"message": "Delet the Data", "timestamp": iso_format(before_now(minutes=1))},
  34. project_id=project.id,
  35. )
  36. url = reverse(
  37. "sentry-api-0-project-events",
  38. kwargs={"organization_slug": project.organization.slug, "project_slug": project.slug},
  39. )
  40. response = self.client.get(url, {"query": "delet"}, format="json")
  41. assert response.status_code == 200, response.content
  42. assert len(response.data) == 1
  43. assert response.data[0]["eventID"] == event_2.event_id
  44. assert response.data[0]["message"] == "Delet the Data"
  45. def test_filters_based_on_retention(self):
  46. self.login_as(user=self.user)
  47. project = self.create_project()
  48. self.store_event(data={"timestamp": iso_format(before_now(days=2))}, project_id=project.id)
  49. event_2 = self.store_event(
  50. data={"timestamp": iso_format(before_now(minutes=1))}, project_id=project.id
  51. )
  52. with self.options({"system.event-retention-days": 1}):
  53. url = reverse(
  54. "sentry-api-0-project-events",
  55. kwargs={
  56. "organization_slug": project.organization.slug,
  57. "project_slug": project.slug,
  58. },
  59. )
  60. response = self.client.get(url, format="json")
  61. assert response.status_code == 200, response.content
  62. assert len(response.data) == 1
  63. assert response.data[0]["eventID"] == event_2.event_id