Esempio n. 1
0
def test_spawn(capsys):
    """We expect spawned copies to inherit the log level of their parents."""

    logger1 = Loggable("Parent")
    logger1.set_level("INFO")
    logger2 = logger1.spawn("new name")

    # logger 1 output
    logger1.info("msg")
    log, _ = capsys.readouterr()
    assert "msg" in log

    # logger 2 output
    logger2.info("msg")
    log, _ = capsys.readouterr()
    assert "msg" in log

    logger1.set_level("ERROR")

    # logger 1 no output
    logger1.info("msg")
    log, _ = capsys.readouterr()
    assert not log

    # logger 2 no output
    logger2.info("msg")
    log, _ = capsys.readouterr()
    assert not log
Esempio n. 2
0
def test_pickle_span():

    logger1 = Loggable("Parent")
    logger1.set_level("INFO")
    logger2 = logger1.spawn("new name")

    assert logger1._children
    assert logger2._children == {}

    logger3 = pickle.loads(pickle.dumps(logger1))
    logger4 = pickle.loads(pickle.dumps(logger2))

    assert dict(logger3._children)
    assert logger3._children[logger2._id] is logger2
    assert logger4._children == {}

    for lvl in ["ERROR", "DEBUG", "INFO"]:
        logger1.set_level(lvl)
        assert logger1.level_name() == lvl
        assert logger2.level_name() == lvl
        assert logger3.level_name() == lvl
        assert logger4.level_name() == lvl