示例#1
0
 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()
示例#2
0
 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()
示例#3
0
    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()
示例#4
0
 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"
示例#5
0
 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
示例#6
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)
示例#7
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', ),
        )

        self.updater = Updater(sentry_app=self.sentry_app)
示例#8
0
 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()
示例#9
0
    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)
示例#10
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)
示例#11
0
    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()
示例#12
0
 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",
     ]
示例#13
0
 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"])
示例#14
0
 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"])
示例#15
0
 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'])
示例#16
0
    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()
示例#17
0
 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"])