1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
import logbook
def test_groups(logger):
def inject_extra(record):
record.extra["foo"] = "bar"
group = logbook.LoggerGroup(processor=inject_extra)
group.level = logbook.ERROR
group.add_logger(logger)
with logbook.TestHandler() as handler:
logger.warn("A warning")
logger.error("An error")
assert not handler.has_warning("A warning")
assert handler.has_error("An error")
assert handler.records[0].extra["foo"] == "bar"
def test_group_disabled():
group = logbook.LoggerGroup()
logger1 = logbook.Logger("testlogger1")
logger2 = logbook.Logger("testlogger2")
group.add_logger(logger1)
group.add_logger(logger2)
# Test group disable
group.disable()
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert not handler.has_warnings
# Test group enable
group.enable()
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert handler.has_warning("Warning 1")
assert handler.has_warning("Warning 2")
# Test group disabled, but logger explicitly enabled
group.disable()
logger1.enable()
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert handler.has_warning("Warning 1")
assert not handler.has_warning("Warning 2")
# Logger 1 will be enabled by using force=True
group.disable(force=True)
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert not handler.has_warning("Warning 1")
assert not handler.has_warning("Warning 2")
# Enabling without force means logger 1 will still be disabled.
group.enable()
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert not handler.has_warning("Warning 1")
assert handler.has_warning("Warning 2")
# Force logger 1 enabled.
group.enable(force=True)
with logbook.TestHandler() as handler:
logger1.warn("Warning 1")
logger2.warn("Warning 2")
assert handler.has_warning("Warning 1")
assert handler.has_warning("Warning 2")
|