test_organization_settings.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from __future__ import absolute_import
  2. from sentry.testutils import AcceptanceTestCase
  3. class OrganizationSettingsTest(AcceptanceTestCase):
  4. def setUp(self):
  5. super(OrganizationSettingsTest, self).setUp()
  6. self.user = self.create_user("foo@example.com")
  7. self.org = self.create_organization(name="Rowdy Tiger", owner=None)
  8. self.team = self.create_team(organization=self.org, name="Mariachi Band")
  9. self.project = self.create_project(organization=self.org, teams=[self.team], name="Bengal")
  10. self.create_member(user=self.user, organization=self.org, role="owner", teams=[self.team])
  11. self.login_as(self.user)
  12. self.path = u"/organizations/{}/settings/".format(self.org.slug)
  13. def load_organization_helper(self, snapshot_name=None):
  14. self.browser.wait_until_not(".loading-indicator")
  15. if snapshot_name is not None:
  16. self.browser.snapshot("organization settings -- " + snapshot_name)
  17. assert self.browser.element_exists(".ref-organization-settings")
  18. def renders_2fa_setting(self):
  19. return self.browser.element_exists("#require2FA")
  20. def test_renders_2fa_setting_for_owner(self):
  21. user_owner = self.create_user("owner@example.com")
  22. organization = self.create_organization(name="Example", owner=user_owner)
  23. self.login_as(user_owner)
  24. path = "/organizations/%s/settings/" % organization.slug
  25. self.browser.get(path)
  26. self.load_organization_helper()
  27. assert self.renders_2fa_setting()
  28. def test_renders_2fa_setting_for_manager(self):
  29. user_manager = self.create_user("manager@gexample.com")
  30. organization = self.create_organization(
  31. name="Example", owner=self.create_user("owner@example.com")
  32. )
  33. self.create_member(organization=organization, user=user_manager, role="manager")
  34. self.login_as(user_manager)
  35. path = "/organizations/%s/settings/" % organization.slug
  36. self.browser.get(path)
  37. self.load_organization_helper()
  38. assert self.renders_2fa_setting()
  39. def test_setting_2fa_without_2fa_enabled(self):
  40. user_owner = self.create_user("owner@example.com")
  41. organization = self.create_organization(name="Example", owner=user_owner)
  42. self.login_as(user_owner)
  43. path = "/organizations/%s/settings/" % organization.slug
  44. self.browser.get(path)
  45. self.browser.wait_until_not(".loading-indicator")
  46. assert not self.browser.element_exists(".ref-organization-settings .error")
  47. self.browser.click("#require2FA")
  48. self.browser.wait_until(".modal")
  49. self.browser.click('.modal [data-test-id="confirm-button"]')
  50. self.browser.wait_until_not(".modal")
  51. self.browser.wait_until_test_id("toast-error")
  52. self.load_organization_helper("setting 2fa without 2fa enabled")