Unify default emitter around universal LogEvent.header
All event kinds now share one shape: a one-line header plus an optional diff body for changes. LogEvent.header is a lazy property covering every kind (change, aborted, created, migrated), and default_emit reduces to logging the header plus routing diff_lines to the .diff child logger. Custom emitters can tap the same blocks - header, diff_lines, Line, format_diff - instead of reimplementing formatting per message type.
This commit is contained in:
@@ -290,3 +290,28 @@ async def test_aborted_transaction_includes_resolved_user(
|
||||
messages = [r.getMessage() for r in caplog.records if r.levelno == logging.WARNING]
|
||||
assert any(" by " in m and "Alice" in m for m in messages)
|
||||
assert any(" transaction aborted: boom" in m for m in messages)
|
||||
|
||||
|
||||
def test_event_header_covers_all_kinds():
|
||||
created = LogEvent(kind="created", logger=transaction_logger, filename="x.db")
|
||||
assert created.header == "Created x.db"
|
||||
|
||||
migrated = LogEvent(
|
||||
kind="migrated",
|
||||
logger=transaction_logger,
|
||||
filename="x.db",
|
||||
from_version=0,
|
||||
to_version=1,
|
||||
migrations=["migrate_v1 (rename)"],
|
||||
)
|
||||
assert migrated.header == "Migrated x.db v0 -> v1: migrate_v1 (rename)"
|
||||
|
||||
aborted = LogEvent(
|
||||
kind="aborted",
|
||||
logger=transaction_logger,
|
||||
action="reset",
|
||||
user="alice",
|
||||
error=ValueError("boom"),
|
||||
)
|
||||
assert "transaction aborted: boom" in aborted.header
|
||||
assert "alice" in aborted.header
|
||||
|
||||
Reference in New Issue
Block a user