71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
# -*- coding: utf-8 -*-
 | 
						|
import logging
 | 
						|
 | 
						|
 | 
						|
logger = logging.getLogger(__name__)
 | 
						|
sublogger = logging.getLogger(__name__ + '.baz')
 | 
						|
 | 
						|
 | 
						|
def test_fixture_help(testdir):
 | 
						|
    result = testdir.runpytest('--fixtures')
 | 
						|
    result.stdout.fnmatch_lines(['*caplog*'])
 | 
						|
 | 
						|
 | 
						|
def test_change_level(caplog):
 | 
						|
    caplog.set_level(logging.INFO)
 | 
						|
    logger.debug('handler DEBUG level')
 | 
						|
    logger.info('handler INFO level')
 | 
						|
 | 
						|
    caplog.set_level(logging.CRITICAL, logger=sublogger.name)
 | 
						|
    sublogger.warning('logger WARNING level')
 | 
						|
    sublogger.critical('logger CRITICAL level')
 | 
						|
 | 
						|
    assert 'DEBUG' not in caplog.text
 | 
						|
    assert 'INFO' in caplog.text
 | 
						|
    assert 'WARNING' not in caplog.text
 | 
						|
    assert 'CRITICAL' in caplog.text
 | 
						|
 | 
						|
 | 
						|
def test_with_statement(caplog):
 | 
						|
    with caplog.at_level(logging.INFO):
 | 
						|
        logger.debug('handler DEBUG level')
 | 
						|
        logger.info('handler INFO level')
 | 
						|
 | 
						|
        with caplog.at_level(logging.CRITICAL, logger=sublogger.name):
 | 
						|
            sublogger.warning('logger WARNING level')
 | 
						|
            sublogger.critical('logger CRITICAL level')
 | 
						|
 | 
						|
    assert 'DEBUG' not in caplog.text
 | 
						|
    assert 'INFO' in caplog.text
 | 
						|
    assert 'WARNING' not in caplog.text
 | 
						|
    assert 'CRITICAL' in caplog.text
 | 
						|
 | 
						|
 | 
						|
def test_log_access(caplog):
 | 
						|
    logger.info('boo %s', 'arg')
 | 
						|
    assert caplog.records[0].levelname == 'INFO'
 | 
						|
    assert caplog.records[0].msg == 'boo %s'
 | 
						|
    assert 'boo arg' in caplog.text
 | 
						|
 | 
						|
 | 
						|
def test_record_tuples(caplog):
 | 
						|
    logger.info('boo %s', 'arg')
 | 
						|
 | 
						|
    assert caplog.record_tuples == [
 | 
						|
        (__name__, logging.INFO, 'boo arg'),
 | 
						|
    ]
 | 
						|
 | 
						|
 | 
						|
def test_unicode(caplog):
 | 
						|
    logger.info(u'bū')
 | 
						|
    assert caplog.records[0].levelname == 'INFO'
 | 
						|
    assert caplog.records[0].msg == u'bū'
 | 
						|
    assert u'bū' in caplog.text
 | 
						|
 | 
						|
 | 
						|
def test_clear(caplog):
 | 
						|
    logger.info(u'bū')
 | 
						|
    assert len(caplog.records)
 | 
						|
    caplog.clear()
 | 
						|
    assert not len(caplog.records)
 |