def test_context():
    with tagged_logger.context(ta(user="******", ip="127.0.0.1")):
        tagged_logger.log("{user} is from {ip}")
    tagged_logger.log("random message")
    record = tagged_logger.get_latest(user="******")
    assert set(record.tags) == set(["user:foo", "ip:127.0.0.1"])
    assert record.attrs == {"user": "******", "ip": "127.0.0.1"}
def test_context_attrs_dict():
    """
    dictionary log message can be extended with attributes
    """
    with tagged_logger.context(remote_addr='127.0.0.1'):
        tagged_logger.log('foo bar')
    record = tagged_logger.get_latest()
    assert record.message == 'foo bar'
    assert record.attrs['remote_addr'] == '127.0.0.1'
    assert record.message == 'foo bar'
def _log_bar():
    with tagged_logger.context('bar'):
        tagged_logger.log('bar')
        time.sleep(0.2)
def _log_foo():
    with tagged_logger.context('foo'):
        tagged_logger.log('foo')
        time.sleep(0.2)
def test_context_tags():
    with tagged_logger.context('foo', 'bar'):
        with tagged_logger.context('baz'):
            tagged_logger.log('Random message', tags=['spam', ])
    for tag in ('__all__', 'foo', 'bar', 'baz', 'spam'):
        assert len(tagged_logger.get(tag)) == 1