mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
from functools import cached_property
|
|
|
|
import responses
|
|
|
|
from sentry.testutils.cases import PluginTestCase
|
|
from sentry.utils import json
|
|
from sentry_plugins.segment.plugin import SegmentPlugin
|
|
|
|
|
|
class SegmentPluginTest(PluginTestCase):
|
|
@cached_property
|
|
def plugin(self):
|
|
return SegmentPlugin()
|
|
|
|
def test_conf_key(self):
|
|
assert self.plugin.conf_key == "segment"
|
|
|
|
def test_entry_point(self):
|
|
self.assertPluginInstalled("segment", self.plugin)
|
|
|
|
@responses.activate
|
|
def test_simple_notification(self):
|
|
responses.add(responses.POST, "https://api.segment.io/v1/track")
|
|
|
|
self.plugin.set_option("write_key", "secret-api-key", self.project)
|
|
|
|
event = self.store_event(
|
|
data={
|
|
"exception": {"type": "ValueError", "value": "foo bar"},
|
|
"user": {"id": "1", "email": "[email protected]"},
|
|
"type": "error",
|
|
"metadata": {"type": "ValueError", "value": "foo bar"},
|
|
"level": "warning",
|
|
},
|
|
project_id=self.project.id,
|
|
)
|
|
|
|
with self.options({"system.url-prefix": "http://example.com"}):
|
|
self.plugin.post_process(event)
|
|
|
|
request = responses.calls[0].request
|
|
payload = json.loads(request.body)
|
|
assert {
|
|
"userId": "1",
|
|
"event": "Error Captured",
|
|
"context": {"library": {"name": "sentry", "version": self.plugin.version}},
|
|
"properties": {
|
|
"environment": "",
|
|
"eventId": event.event_id,
|
|
"exceptionType": "ValueError",
|
|
"level": "warning",
|
|
"release": "",
|
|
"transaction": "",
|
|
},
|
|
"integration": {"name": "sentry", "version": self.plugin.version},
|
|
"timestamp": event.datetime.isoformat() + "Z",
|
|
} == payload
|