test_issue_details_workflow.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from __future__ import absolute_import
  2. from datetime import datetime
  3. from django.utils import timezone
  4. from sentry.testutils import AcceptanceTestCase, SnubaTestCase
  5. from sentry.utils.samples import load_data
  6. from tests.acceptance.page_objects.issue_details import IssueDetailsPage
  7. class IssueDetailsWorkflowTest(AcceptanceTestCase, SnubaTestCase):
  8. def setUp(self):
  9. super(IssueDetailsWorkflowTest, self).setUp()
  10. self.user = self.create_user('foo@example.com')
  11. self.org = self.create_organization(
  12. owner=self.user, name='Rowdy Tiger')
  13. self.team = self.create_team(
  14. organization=self.org, name='Mariachi Band',
  15. members=[self.user])
  16. self.project = self.create_project(
  17. organization=self.org,
  18. teams=[self.team],
  19. name='Bengal',
  20. )
  21. self.login_as(self.user)
  22. self.page = IssueDetailsPage(self.browser, self.client)
  23. def create_sample_event(self, platform, default=None, sample_name=None):
  24. event_data = load_data(platform, default=default,
  25. sample_name=sample_name)
  26. event_data['event_id'] = 'd964fdbd649a4cf8bfc35d18082b6b0e'
  27. event = self.store_event(
  28. data=event_data,
  29. project_id=self.project.id,
  30. assert_no_errors=False,
  31. )
  32. event.datetime = datetime(2017, 9, 6, 0, 0)
  33. event.save()
  34. event.group.update(
  35. first_seen=datetime(2015, 8, 13, 3, 8, 25, tzinfo=timezone.utc),
  36. last_seen=datetime(2016, 1, 13, 3, 8, 25, tzinfo=timezone.utc),
  37. )
  38. return event
  39. def test_resolve_basic(self):
  40. event = self.create_sample_event(
  41. platform='python',
  42. )
  43. self.page.visit_issue(self.org.slug, event.group.id)
  44. self.page.resolve_issue()
  45. res = self.page.api_issue_get(event.group.id)
  46. assert res.status_code == 200, res
  47. assert res.data['status'] == 'resolved'
  48. def test_ignore_basic(self):
  49. event = self.create_sample_event(
  50. platform='python',
  51. )
  52. self.page.visit_issue(self.org.slug, event.group.id)
  53. self.page.ignore_issue()
  54. res = self.page.api_issue_get(event.group.id)
  55. assert res.status_code == 200, res
  56. assert res.data['status'] == 'ignored'
  57. def test_bookmark(self):
  58. event = self.create_sample_event(
  59. platform='python',
  60. )
  61. self.page.visit_issue(self.org.slug, event.group.id)
  62. self.page.bookmark_issue()
  63. res = self.page.api_issue_get(event.group.id)
  64. assert res.status_code == 200, res
  65. assert res.data['isBookmarked']
  66. def test_assign_issue(self):
  67. event = self.create_sample_event(
  68. platform='python',
  69. )
  70. self.page.visit_issue(self.org.slug, event.group.id)
  71. self.page.assign_to(self.user.email)
  72. res = self.page.api_issue_get(event.group.id)
  73. assert res.status_code == 200, res
  74. assert res.data['assignedTo']
  75. def test_create_comment(self):
  76. event = self.create_sample_event(
  77. platform='python',
  78. )
  79. self.page.visit_issue(self.org.slug, event.group.id)
  80. self.page.go_to_subtab('Comments')
  81. form = self.page.find_comment_form()
  82. form.find_element_by_tag_name('textarea').send_keys('this looks bad')
  83. form.submit()
  84. assert self.page.has_comment('this looks bad')