test_project_servicehooks.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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(name="Rowdy Tiger", owner=None)
  9. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  10. self.project = self.create_project(organization=self.org, teams=[self.team], name="Bengal")
  11. self.create_member(user=self.user, organization=self.org, role="owner", teams=[self.team])
  12. self.login_as(self.user)
  13. self.list_hooks_path = u"/settings/{}/projects/{}/hooks/".format(
  14. self.org.slug, self.project.slug
  15. )
  16. self.new_hook_path = u"/settings/{}/projects/{}/hooks/new/".format(
  17. self.org.slug, self.project.slug
  18. )
  19. def test_simple(self):
  20. with self.feature("projects:servicehooks"):
  21. self.browser.get(self.list_hooks_path)
  22. self.browser.wait_until_not(".loading-indicator")
  23. self.browser.wait_until(".ref-project-service-hooks")
  24. self.browser.snapshot("project settings - service hooks - empty list")
  25. # click "New"
  26. self.browser.click('[data-test-id="new-service-hook"]')
  27. self.browser.wait_until_not(".loading-indicator")
  28. assert self.browser.current_url == u"{}{}".format(
  29. self.browser.live_server_url, self.new_hook_path
  30. )
  31. self.browser.snapshot("project settings - service hooks - create")
  32. self.browser.element('input[name="url"]').send_keys("https://example.com/hook")
  33. # click "Save Changes"
  34. self.browser.click('.ref-project-create-service-hook [data-test-id="form-submit"]')
  35. self.browser.wait_until_not(".loading-indicator")
  36. assert self.browser.current_url == u"{}{}".format(
  37. self.browser.live_server_url, self.list_hooks_path
  38. )
  39. self.browser.snapshot("project settings - service hooks - list with entries")
  40. hook = ServiceHook.objects.get(project_id=self.project.id)
  41. assert hook.url == "https://example.com/hook"
  42. assert not hook.events
  43. # hopefully click the first service hook
  44. self.browser.click(".ref-project-service-hooks label a")
  45. self.browser.wait_until_not(".loading-indicator")
  46. assert self.browser.current_url == u"{}{}".format(
  47. self.browser.live_server_url,
  48. u"/settings/{}/projects/{}/hooks/{}/".format(
  49. self.org.slug, self.project.slug, hook.guid
  50. ),
  51. )
  52. self.browser.snapshot("project settings - service hooks - details")