mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
48 lines
1.4 KiB
Python
48 lines
1.4 KiB
Python
import pytest
|
|
|
|
from sentry import eventstore
|
|
from sentry.event_manager import EventManager
|
|
|
|
|
|
@pytest.fixture
|
|
def make_message_snapshot(insta_snapshot):
|
|
def inner(data):
|
|
mgr = EventManager(data={"logentry": data})
|
|
mgr.normalize()
|
|
evt = eventstore.backend.create_event(data=mgr.get_data())
|
|
|
|
interface = evt.interfaces.get("logentry")
|
|
insta_snapshot(
|
|
{"errors": evt.data.get("errors"), "to_json": interface and interface.to_json()}
|
|
)
|
|
|
|
return inner
|
|
|
|
|
|
def test_basic(make_message_snapshot):
|
|
make_message_snapshot(
|
|
dict(message="Hello there %s!", params=("world",), formatted="Hello there world!")
|
|
)
|
|
|
|
|
|
def test_format_kwargs(make_message_snapshot):
|
|
make_message_snapshot(dict(message="Hello there %(name)s!", params={"name": "world"}))
|
|
|
|
|
|
def test_format_braces(make_message_snapshot):
|
|
make_message_snapshot(dict(message="Hello there {}!", params=("world",)))
|
|
|
|
|
|
@pytest.mark.parametrize("input", [42, True, 4.2])
|
|
def test_stringify_primitives(make_message_snapshot, input):
|
|
make_message_snapshot(input)
|
|
|
|
|
|
def test_retains_formatted(make_message_snapshot):
|
|
# we had a regression which was throwing this data away
|
|
make_message_snapshot({"message": "foo bar", "formatted": "foo bar baz"})
|
|
|
|
|
|
def test_discards_dupe_message(make_message_snapshot):
|
|
make_message_snapshot({"message": "foo bar", "formatted": "foo bar"})
|