Пример #1
0
async def test_logger_factory_minimum_level_to_debug():
    factory = LoggerFactory()

    test_target_1 = InMemoryTarget()
    test_target_2 = InMemoryTarget()
    test_target_3 = InMemoryTarget()

    factory \
        .add_target(test_target_1, LogLevel.DEBUG) \
        .add_target(test_target_2, LogLevel.INFORMATION) \
        .add_target(test_target_3, LogLevel.ERROR)

    logger = factory.get_logger(__name__)

    assert logger is not None

    await logger.info('Hello, World')

    assert 'Hello, World' == test_target_1.records[0].message
    assert 'Hello, World' == test_target_2.records[0].message
    assert not test_target_3.records

    await logger.debug('Lorem ipsum')

    assert 2 == len(test_target_1.records)
    assert 'Lorem ipsum' == test_target_1.records[1].message
    assert 1 == len(test_target_2.records)
    assert not test_target_3.records
Пример #2
0
async def test_logger_factory_two_targets():
    factory = LoggerFactory()
    test_target_1 = InMemoryTarget()
    test_target_2 = InMemoryTarget()

    factory\
        .add_target(test_target_1) \
        .add_target(test_target_2)

    logger = factory.get_logger(__name__)

    assert logger is not None
    await logger.log('Hello, World')

    assert 'Hello, World' == test_target_1.records[0].message
    assert 'Hello, World' == test_target_2.records[0].message
Пример #3
0
def test_logger_factory_get_targets():
    factory = LoggerFactory()
    test_target = InMemoryTarget()
    factory.add_target(test_target, minimum_level=LogLevel.CRITICAL)

    targets = factory.targets

    assert targets is not None
    assert targets[LogLevel.DEBUG] == []
    assert targets[LogLevel.INFORMATION] == []
    assert targets[LogLevel.CRITICAL] == [test_target]

    second_target = InMemoryTarget()
    factory.add_target(second_target, minimum_level=LogLevel.INFORMATION)

    assert targets[LogLevel.INFORMATION] == [second_target]
    assert targets[LogLevel.CRITICAL] == [test_target]
Пример #4
0
    def __init__(self, max_size, fallback_target=None):
        if fallback_target is None:
            fallback_target = InMemoryTarget()

        self.fallback = fallback_target
        super().__init__(max_size=max_size,
                         fallback_target=self.fallback,
                         retry_delay=0.001,
                         progressive_delay=False)
Пример #5
0
async def test_logger_factory_minimum_level():
    factory = LoggerFactory()
    test_target_1 = InMemoryTarget()
    test_target_2 = InMemoryTarget()

    factory\
        .add_target(test_target_1, LogLevel.INFORMATION) \
        .add_target(test_target_2, LogLevel.ERROR)

    logger = factory.get_logger(__name__)
    assert logger is not None
    await logger.info('Hello, World')

    assert 'Hello, World' == test_target_1.records[0].message
    assert not test_target_2.records

    await logger.error('Oh, no!')

    assert 'Oh, no!' == test_target_1.records[1].message
    assert 'Oh, no!' == test_target_2.records[0].message
Пример #6
0
async def test_records_support_extra_data():
    factory = LoggerFactory()
    test_target = InMemoryTarget()
    factory.add_target(test_target)
    logger = factory.get_logger(__name__)

    assert logger is not None

    await logger.info('Hello, World', id=2016, name='Tyberiusz')

    record = test_target.records[0]  # type: LogRecord
    assert {'id': 2016, 'name': 'Tyberiusz'} == record.data
Пример #7
0
async def test_records_support_extra_arguments():
    factory = LoggerFactory()
    test_target = InMemoryTarget()
    factory.add_target(test_target)
    logger = factory.get_logger(__name__)

    assert logger is not None

    await logger.info('Hello, World', 'One', 'Two', 'Three')

    record = test_target.records[0]  # type: LogRecord
    assert ('One', 'Two', 'Three') == record.args
Пример #8
0
async def test_records_have_timestamp():
    factory = LoggerFactory()
    test_target = InMemoryTarget()
    factory.add_target(test_target)
    logger = factory.get_logger(__name__)

    assert logger is not None

    for i in range(10):
        await logger.info(f'Hello, World {i}')

    for record in test_target.records:
        assert record.time
Пример #9
0
async def test_logger_exception():
    factory = LoggerFactory()
    test_target = InMemoryTarget()
    factory.add_target(test_target)
    logger = factory.get_logger(__name__)

    try:
        1 / 0
    except Exception as ex:
        # passing exception
        await logger.exception('Oh, no!', ex)

    assert 'Oh, no!' == test_target.records[0].message

    try:
        1 / 0
    except Exception:
        # without passing exception
        await logger.exception('Oh, no2!')

    assert 'Oh, no2!' == test_target.records[1].message
Пример #10
0
def test_logger_factory_raises_invalid_minimum_level(invalid_value):
    factory = LoggerFactory()

    with raises(ValueError, match='Invalid minimum_level'):
        factory.add_target(InMemoryTarget(), minimum_level=invalid_value)