test_organization_sentry_app_detailed_view.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from __future__ import absolute_import
  2. from sentry.testutils import AcceptanceTestCase
  3. from sentry.models import SentryAppInstallation
  4. from tests.acceptance.page_objects.organization_integration_settings import (
  5. OrganizationSentryAppDetailViewPage,
  6. )
  7. class OrganizationSentryAppDetailedView(AcceptanceTestCase):
  8. def setUp(self):
  9. super(OrganizationSentryAppDetailedView, self).setUp()
  10. self.create_project(organization=self.organization)
  11. self.sentry_app = self.create_sentry_app(
  12. organization=self.organization,
  13. published=True,
  14. verify_install=False,
  15. name="Super Awesome App",
  16. )
  17. self.login_as(self.user)
  18. def load_page(self, slug):
  19. url = u"/settings/{}/sentry-apps/{}/".format(self.organization.slug, slug)
  20. self.browser.get(url)
  21. self.browser.wait_until_not(".loading-indicator")
  22. def test_add_sentry_app(self):
  23. self.load_page(self.sentry_app.slug)
  24. self.browser.snapshot("integrations - sentry app detail uninstalled")
  25. detail_view_page = OrganizationSentryAppDetailViewPage(browser=self.browser)
  26. detail_view_page.click_install_button()
  27. self.browser.wait_until('[data-test-id="toast-success"]')
  28. assert SentryAppInstallation.objects.filter(
  29. organization=self.organization, sentry_app=self.sentry_app
  30. )
  31. def test_uninstallation(self):
  32. self.installation = self.create_sentry_app_installation(
  33. slug=self.sentry_app.slug, organization=self.organization, user=self.user
  34. )
  35. self.load_page(self.sentry_app.slug)
  36. self.browser.snapshot("integrations - sentry app detail installed")
  37. detail_view_page = OrganizationSentryAppDetailViewPage(browser=self.browser)
  38. detail_view_page.uninstall()
  39. self.browser.wait_until('[data-test-id="toast-success"]')
  40. assert not SentryAppInstallation.objects.filter(
  41. organization=self.organization, sentry_app=self.sentry_app
  42. )