def test_info_location(app, status, warning): logging.setup(app, status, warning) logger = logging.getLogger(__name__) logger.info('message1', location='index') assert 'index.txt: message1' in status.getvalue() logger.info('message2', location=('index', 10)) assert 'index.txt:10: message2' in status.getvalue() logger.info('message3', location=None) assert '\nmessage3' in status.getvalue() node = nodes.Node() node.source, node.line = ('index.txt', 10) logger.info('message4', location=node) assert 'index.txt:10: message4' in status.getvalue() node.source, node.line = ('index.txt', None) logger.info('message5', location=node) assert 'index.txt:: message5' in status.getvalue() node.source, node.line = (None, 10) logger.info('message6', location=node) assert '<unknown>:10: message6' in status.getvalue() node.source, node.line = (None, None) logger.info('message7', location=node) assert '\nmessage7' in status.getvalue()
def test_warning_location(app, status, warning): logging.setup(app, status, warning) logger = logging.getLogger(__name__) logger.warning('message1', location='index') assert 'index.txt: WARNING: message1' in warning.getvalue() logger.warning('message2', location=('index', 10)) assert 'index.txt:10: WARNING: message2' in warning.getvalue() logger.warning('message3', location=None) assert colorize('darkred', 'WARNING: message3') in warning.getvalue() node = nodes.Node() node.source, node.line = ('index.txt', 10) logger.warning('message4', location=node) assert 'index.txt:10: WARNING: message4' in warning.getvalue() node.source, node.line = ('index.txt', None) logger.warning('message5', location=node) assert 'index.txt:: WARNING: message5' in warning.getvalue() node.source, node.line = (None, 10) logger.warning('message6', location=node) assert '<unknown>:10: WARNING: message6' in warning.getvalue() node.source, node.line = (None, None) logger.warning('message7', location=node) assert colorize('darkred', 'WARNING: message7') in warning.getvalue()
def test_get_node_location_abspath(): # Ensure that node locations are reported as an absolute path, # even if the source attribute is a relative path. relative_filename = os.path.join('relative', 'path.txt') absolute_filename = osutil.abspath(relative_filename) n = nodes.Node() n.source = relative_filename location = logging.get_node_location(n) assert location == absolute_filename + ':'