def test_v0_payload(self): event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) body = get_payload_v0(event) assert body["group"][ "url"] == "http://testserver/organizations/{}/issues/{}/".format( self.organization.slug, event.group.id) assert body["event"][ "url"] == "http://testserver/organizations/{}/issues/{}/events/{}/".format( self.organization.slug, event.group.id, event.event_id)
def test_v0_payload(self): event = self.store_event( data={"timestamp": iso_format(before_now(minutes=1))}, project_id=self.project.id) process_service_hook(self.hook.id, event) body = get_payload_v0(event) assert body["group"][ "url"] == "http://testserver/organizations/{}/issues/{}/".format( self.organization.slug, event.group.id) assert body["event"][ "url"] == "http://testserver/organizations/{}/issues/{}/events/{}/".format( self.organization.slug, event.group.id, event.event_id)
def test_v0_payload(self): event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) body = get_payload_v0(event) assert body['group']['url'] == 'http://testserver/organizations/{}/issues/{}/'.format( self.organization.slug, event.group.id, ) assert body['event']['url'] == 'http://testserver/organizations/{}/issues/{}/events/{}/'.format( self.organization.slug, event.group.id, event.event_id, )
def test_verify_sentry_hook_signature(self, safe_urlopen): import hmac from hashlib import sha256 event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) body = json.dumps(get_payload_v0(event)) expected = hmac.new(key=self.hook.secret.encode("utf-8"), msg=body.encode("utf-8"), digestmod=sha256).hexdigest() assert expected == faux( safe_urlopen).kwargs["headers"]["X-ServiceHook-Signature"]
def test_verify_sentry_hook_signature(self, safe_urlopen): import hmac from hashlib import sha256 event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) body = json.dumps(get_payload_v0(event)) expected = hmac.new( key=self.hook.secret.encode('utf-8'), msg=body.encode('utf-8'), digestmod=sha256, ).hexdigest() assert expected == faux(safe_urlopen).kwargs['headers']['X-ServiceHook-Signature']
def test_event_created_sends_service_hook(self, safe_urlopen): self.hook.update(events=['event.created', 'event.alert']) event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) data = json.loads(faux(safe_urlopen).kwargs['data']) assert faux(safe_urlopen).kwarg_equals('url', self.hook.url) assert data == json.loads(json.dumps(get_payload_v0(event))) assert faux(safe_urlopen).kwarg_equals('headers', DictContaining( 'Content-Type', 'X-ServiceHook-Timestamp', 'X-ServiceHook-GUID', 'X-ServiceHook-Signature', ))
def test_v0_payload(self): responses.add(responses.POST, "https://example.com/sentry/webhook") event = self.store_event( data={"timestamp": iso_format(before_now(minutes=1))}, project_id=self.project.id) process_service_hook(self.hook.id, event) body = get_payload_v0(event) assert ( body["group"]["url"] == f"http://testserver/organizations/{self.organization.slug}/issues/{event.group.id}/" ) assert ( body["event"]["url"] == f"http://testserver/organizations/{self.organization.slug}/issues/{event.group.id}/events/{event.event_id}/" )
def test_verify_sentry_hook_signature(self, safe_urlopen): import hmac from hashlib import sha256 event = self.store_event( data={"timestamp": iso_format(before_now(minutes=1))}, project_id=self.project.id) process_service_hook(self.hook.id, event) body = json.dumps(get_payload_v0(event)) expected = hmac.new(key=self.hook.secret.encode("utf-8"), msg=body.encode("utf-8"), digestmod=sha256).hexdigest() assert expected == faux( safe_urlopen).kwargs["headers"]["X-ServiceHook-Signature"]
def test_event_created_sends_service_hook(self, safe_urlopen): self.hook.update(events=["event.created", "event.alert"]) event = self.create_event(project=self.project) process_service_hook(self.hook.id, event) data = json.loads(faux(safe_urlopen).kwargs["data"]) assert faux(safe_urlopen).kwarg_equals("url", self.hook.url) assert data == json.loads(json.dumps(get_payload_v0(event))) assert faux(safe_urlopen).kwarg_equals( "headers", DictContaining( "Content-Type", "X-ServiceHook-Timestamp", "X-ServiceHook-GUID", "X-ServiceHook-Signature", ), )