def test_doesnt_update_verify_install_if_internal(self): self.create_project(organization=self.org) sentry_app = self.create_internal_integration(name="Internal", organization=self.org) updater = Updater(sentry_app=sentry_app, user=self.user) updater.verify_install = True with self.assertRaises(APIError): updater.call()
def test_doesnt_update_app_with_invalid_event_permissions(self): sentry_app = self.create_sentry_app( name="sentry", organization=self.org, scopes=("project:read",) ) updater = Updater(sentry_app=sentry_app, user=self.user) updater.events = ("issue",) with self.assertRaises(APIError): updater.call()
def test_doesnt_update_published_app_scopes(self): sentry_app = self.create_sentry_app( name="sentry", organization=self.org, scopes=("project:read",), published=True ) updater = Updater(sentry_app=sentry_app, user=self.user) updater.scopes = ("project:read", "project:write") with self.assertRaises(APIError): updater.call()
def test_update_webhook_published_app(self): sentry_app = self.create_sentry_app( name="sentry", organization=self.org, scopes=("project:read",), published=True ) updater = Updater(sentry_app=sentry_app, user=self.user) # pass in scopes but as the same value updater.scopes = ["project:read"] updater.webhook_url = "http://example.com/hooks" updater.call() assert sentry_app.webhook_url == "http://example.com/hooks"
def test_delete_service_hook_on_update(self): self.create_project(organization=self.org) internal_app = self.create_internal_integration( name="Internal", organization=self.org, webhook_url="https://sentry.io/hook" ) assert len(ServiceHook.objects.filter(application=internal_app.application)) == 1 updater = Updater(sentry_app=internal_app, user=self.user) updater.webhook_url = "" updater.call() assert len(ServiceHook.objects.filter(application=internal_app.application)) == 0
def setUp(self): self.user = self.create_user() self.org = self.create_organization(owner=self.user) self.sentry_app = self.create_sentry_app( name="nulldb", organization=self.org, scopes=("project:read",), schema={"elements": [self.create_issue_link_schema()]}, ) self.updater = Updater(sentry_app=self.sentry_app, user=self.user)
def setUp(self): self.user = self.create_user() self.org = self.create_organization(owner=self.user) self.sentry_app = self.create_sentry_app( name='nulldb', organization=self.org, scopes=('project:read', ), ) self.updater = Updater(sentry_app=self.sentry_app)
def test_doesnt_update_app_with_invalid_event_permissions(self): sentry_app = self.create_sentry_app( name='sentry', organization=self.org, scopes=('project:read', ), ) updater = Updater(sentry_app=sentry_app) updater.events = ('issue', ) with self.assertRaises(APIError): updater.call()
def setUp(self): self.user = self.create_user() self.sentry_app = Creator.run( name='nulldb', user=self.user, scopes=('project:read', ), webhook_url='http://example.com', ) self.updater = Updater(sentry_app=self.sentry_app)
def setUp(self): self.user = self.create_user() self.org = self.create_organization(owner=self.user) self.sentry_app = self.create_sentry_app( name='nulldb', organization=self.org, scopes=('project:read', ), schema={'elements': [self.create_issue_link_schema()]}, ) self.updater = Updater(sentry_app=self.sentry_app)
def test_doesnt_update_published_app_scopes(self): sentry_app = self.create_sentry_app( name='sentry', organization=self.org, scopes=('project:read',), published=True, ) updater = Updater(sentry_app=sentry_app) updater.scopes = ('project:read', 'project:write', ) with self.assertRaises(APIError): updater.call()
def test_update_scopes_internal_integration(self): self.create_project(organization=self.org) sentry_app = self.create_internal_integration( scopes=("project:read",), organization=self.org ) updater = Updater(sentry_app=sentry_app, user=self.user) updater.scopes = ("project:read", "project:write") updater.call() assert sentry_app.get_scopes() == ["project:read", "project:write"] assert ApiToken.objects.get(application=sentry_app.application).get_scopes() == [ "project:read", "project:write", ]
def test_create_service_hook_on_update(self): self.create_project(organization=self.org) internal_app = self.create_internal_integration( name="Internal", organization=self.org, webhook_url=None, scopes=("event:read",) ) assert len(ServiceHook.objects.filter(application=internal_app.application)) == 0 updater = Updater(sentry_app=internal_app, user=self.user) updater.webhook_url = "https://sentry.io/hook" updater.events = ("issue",) updater.call() service_hook = ServiceHook.objects.get(application=internal_app.application) assert service_hook.url == "https://sentry.io/hook" assert set(service_hook.events) == expand_events(["issue"])
def test_updates_service_hook_events(self): sentry_app = self.create_sentry_app( name="sentry", organization=self.org, scopes=("project:read", "event:read"), events=("event.alert",), ) self.create_sentry_app_installation(slug="sentry") updater = Updater(sentry_app=sentry_app, events=("issue",), user=self.user) updater.call() assert set(sentry_app.events) == expand_events(["issue"]) service_hook = ServiceHook.objects.filter(application=sentry_app.application)[0] assert set(service_hook.events) == expand_events(["issue"])
def test_updates_service_hook_events(self): sentry_app = self.create_sentry_app( name='sentry', organization=self.org, scopes=('project:read', 'event:read',), events=('event.alert',), ) self.create_sentry_app_installation(slug='sentry') updater = Updater(sentry_app=sentry_app, events=('issue',), user=self.user) updater.call() assert set(sentry_app.events) == expand_events(['issue']) service_hook = ServiceHook.objects.filter(application=sentry_app.application)[0] assert set(service_hook.events) == expand_events(['issue'])
def test_doesnt_update_published_app_scopes(self): sentry_app = Creator.run( name='sentry', organization=self.org, scopes=('project:read',), webhook_url='http://example.com', ) sentry_app.update(status=SentryAppStatus.PUBLISHED) updater = Updater(sentry_app=sentry_app) updater.scopes = ('project:read', 'project:write', ) with self.assertRaises(APIError): updater.call()
def test_updates_webhook_url(self): sentry_app = self.create_sentry_app( name="sentry", organization=self.org, scopes=("project:read", "event:read"), events=("event.alert",), ) self.create_sentry_app_installation(slug="sentry") updater = Updater( sentry_app=sentry_app, webhook_url="http://example.com/hooks", user=self.user ) updater.call() assert sentry_app.webhook_url == "http://example.com/hooks" service_hook = ServiceHook.objects.get(application=sentry_app.application) assert service_hook.url == "http://example.com/hooks" assert set(service_hook.events) == expand_events(["event.alert"])