Files
SQLmem/tests/test_logging.py
T

25 lines
927 B
Python

from loguru import logger
import sqlmem
def test_add_sink_idempotent_no_duplicate_lines():
"""Calling add_sink twice for the same sink must not duplicate log lines."""
sqlmem._added_sinks.clear()
msgs: list[str] = []
sink = lambda message: msgs.append(str(message)) # noqa: E731
try:
sqlmem.add_sink(sink, level="DEBUG", colorize=False)
sqlmem.add_sink(sink, level="DEBUG", colorize=False) # second call: no-op
assert len(sqlmem._added_sinks) == 1
# Emit one record that passes the "sqlmem" name filter.
logger.patch(lambda r: r.update(name="sqlmem")).info("hello sqlmem")
assert sum("hello sqlmem" in m for m in msgs) == 1
finally:
for handler_id in sqlmem._added_sinks.values():
logger.remove(handler_id)
sqlmem._added_sinks.clear()
logger.disable("sqlmem") # restore the default-silent state for other tests