test_project_servicehooks.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from __future__ import absolute_import
  2. from sentry.models import ServiceHook
  3. from sentry.testutils import AcceptanceTestCase
  4. class ProjectServiceHooksTest(AcceptanceTestCase):
  5. def setUp(self):
  6. super(ProjectServiceHooksTest, self).setUp()
  7. self.user = self.create_user('foo@example.com')
  8. self.org = self.create_organization(
  9. name='Rowdy Tiger',
  10. owner=None,
  11. )
  12. self.team = self.create_team(organization=self.org, name='Mariachi Band')
  13. self.project = self.create_project(
  14. organization=self.org,
  15. teams=[self.team],
  16. name='Bengal',
  17. )
  18. self.create_member(
  19. user=self.user,
  20. organization=self.org,
  21. role='owner',
  22. teams=[self.team],
  23. )
  24. self.login_as(self.user)
  25. self.list_hooks_path = u'/settings/{}/projects/{}/hooks/'.format(
  26. self.org.slug, self.project.slug)
  27. self.new_hook_path = u'/settings/{}/projects/{}/hooks/new/'.format(
  28. self.org.slug, self.project.slug)
  29. def test_simple(self):
  30. with self.feature('projects:servicehooks'):
  31. self.browser.get(self.list_hooks_path)
  32. self.browser.wait_until_not('.loading-indicator')
  33. self.browser.wait_until('.ref-project-service-hooks')
  34. self.browser.snapshot('project settings - service hooks - empty list')
  35. # click "New"
  36. self.browser.click('[data-test-id="new-service-hook"]')
  37. self.browser.wait_until_not('.loading-indicator')
  38. assert self.browser.current_url == u'{}{}'.format(
  39. self.browser.live_server_url,
  40. self.new_hook_path,
  41. )
  42. self.browser.snapshot('project settings - service hooks - create')
  43. self.browser.element('input[name="url"]').send_keys('https://example.com/hook')
  44. # click "Save Changes"
  45. self.browser.click('.ref-project-create-service-hook [data-test-id="form-submit"]')
  46. self.browser.wait_until_not('.loading-indicator')
  47. assert self.browser.current_url == u'{}{}'.format(
  48. self.browser.live_server_url,
  49. self.list_hooks_path,
  50. )
  51. self.browser.snapshot('project settings - service hooks - list with entries')
  52. hook = ServiceHook.objects.get(project_id=self.project.id)
  53. assert hook.url == 'https://example.com/hook'
  54. assert not hook.events
  55. # hopefully click the first service hook
  56. self.browser.click('.ref-project-service-hooks label a')
  57. self.browser.wait_until_not('.loading-indicator')
  58. assert self.browser.current_url == u'{}{}'.format(
  59. self.browser.live_server_url,
  60. u'/settings/{}/projects/{}/hooks/{}/'.format(
  61. self.org.slug, self.project.slug, hook.guid),
  62. )
  63. self.browser.snapshot('project settings - service hooks - details')