test_dashboard.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from __future__ import absolute_import
  2. from django.utils import timezone
  3. from sentry.testutils import AcceptanceTestCase, SnubaTestCase
  4. from sentry.models import (
  5. GroupAssignee,
  6. Release,
  7. Environment,
  8. Deploy,
  9. ReleaseProjectEnvironment,
  10. OrganizationOnboardingTask,
  11. OnboardingTask,
  12. OnboardingTaskStatus,
  13. )
  14. from sentry.utils.samples import load_data
  15. from datetime import datetime
  16. class DashboardTest(AcceptanceTestCase, SnubaTestCase):
  17. def setUp(self):
  18. super(DashboardTest, self).setUp()
  19. self.user = self.create_user("foo@example.com")
  20. self.org = self.create_organization(name="Rowdy Tiger", owner=None)
  21. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  22. self.project = self.create_project(
  23. organization=self.org, teams=[self.team], name="Bengal-Elephant-Giraffe-Tree-House"
  24. )
  25. self.create_member(user=self.user, organization=self.org, role="owner", teams=[self.team])
  26. release = Release.objects.create(organization_id=self.org.id, version="1")
  27. environment = Environment.objects.create(organization_id=self.org.id, name="production")
  28. deploy = Deploy.objects.create(
  29. environment_id=environment.id,
  30. organization_id=self.org.id,
  31. release=release,
  32. date_finished="2018-05-23",
  33. )
  34. ReleaseProjectEnvironment.objects.create(
  35. project_id=self.project.id,
  36. release_id=release.id,
  37. environment_id=environment.id,
  38. last_deploy_id=deploy.id,
  39. )
  40. self.login_as(self.user)
  41. self.path = u"/organizations/{}/projects/".format(self.org.slug)
  42. def test_project_with_no_first_event(self):
  43. self.project.update(first_event=None)
  44. self.browser.get(self.path)
  45. self.browser.wait_until_not(".loading-indicator")
  46. self.browser.wait_until_test_id("resources")
  47. self.browser.wait_until("[data-test-id] figure")
  48. self.browser.snapshot("org dash no first event")
  49. def test_one_issue(self):
  50. self.init_snuba()
  51. event_data = load_data("python")
  52. event_data["event_id"] = "d964fdbd649a4cf8bfc35d18082b6b0e"
  53. event_data["timestamp"] = 1452683305
  54. event = self.store_event(
  55. project_id=self.project.id, data=event_data, assert_no_errors=False
  56. )
  57. event.group.update(
  58. first_seen=datetime(2018, 1, 12, 3, 8, 25, tzinfo=timezone.utc),
  59. last_seen=datetime(2018, 1, 13, 3, 8, 25, tzinfo=timezone.utc),
  60. )
  61. GroupAssignee.objects.create(user=self.user, group=event.group, project=self.project)
  62. OrganizationOnboardingTask.objects.create_or_update(
  63. organization_id=self.project.organization_id,
  64. task=OnboardingTask.FIRST_EVENT,
  65. status=OnboardingTaskStatus.COMPLETE,
  66. )
  67. self.project.update(first_event=timezone.now())
  68. self.browser.get(self.path)
  69. self.browser.wait_until_not(".loading-indicator")
  70. self.browser.wait_until("[data-test-id] figure")
  71. self.browser.snapshot("org dash one issue")
  72. class EmptyDashboardTest(AcceptanceTestCase):
  73. def setUp(self):
  74. super(EmptyDashboardTest, self).setUp()
  75. self.user = self.create_user("foo@example.com")
  76. self.org = self.create_organization(name="Rowdy Tiger", owner=None)
  77. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  78. self.create_member(user=self.user, organization=self.org, role="owner", teams=[self.team])
  79. self.login_as(self.user)
  80. self.path = u"/organizations/{}/projects/".format(self.org.slug)
  81. def test_new_dashboard_empty(self):
  82. self.browser.get(self.path)
  83. self.browser.wait_until_not(".loading-indicator")
  84. self.browser.snapshot("new dashboard empty")