25 lines
927 B
Python
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
|