Files
2024-02-15 17:01:50 +00:00

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"})