123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165 |
- from __future__ import absolute_import
-
- import logging
- import sys
-
- from kombu.log import (
- NullHandler,
- get_logger,
- get_loglevel,
- safeify_format,
- Log,
- LogMixin,
- setup_logging,
- )
-
- from .case import Case, Mock, patch
-
-
- class test_NullHandler(Case):
-
- def test_emit(self):
- h = NullHandler()
- h.emit('record')
-
-
- class test_get_logger(Case):
-
- def test_when_string(self):
- l = get_logger('foo')
-
- self.assertIs(l, logging.getLogger('foo'))
- h1 = l.handlers[0]
- self.assertIsInstance(h1, NullHandler)
-
- def test_when_logger(self):
- l = get_logger(logging.getLogger('foo'))
- h1 = l.handlers[0]
- self.assertIsInstance(h1, NullHandler)
-
- def test_with_custom_handler(self):
- l = logging.getLogger('bar')
- handler = NullHandler()
- l.addHandler(handler)
-
- l = get_logger('bar')
- self.assertIs(l.handlers[0], handler)
-
- def test_get_loglevel(self):
- self.assertEqual(get_loglevel('DEBUG'), logging.DEBUG)
- self.assertEqual(get_loglevel('ERROR'), logging.ERROR)
- self.assertEqual(get_loglevel(logging.INFO), logging.INFO)
-
-
- class test_safe_format(Case):
-
- def test_formatting(self):
- fmt = 'The %r jumped %x over the %s'
- args = ['frog', 'foo', 'elephant']
-
- res = list(safeify_format(fmt, args))
- self.assertListEqual(res, ["'frog'", 'foo', 'elephant'])
-
-
- class test_LogMixin(Case):
-
- def setUp(self):
- self.log = Log('Log', Mock())
- self.logger = self.log.logger
-
- def test_debug(self):
- self.log.debug('debug')
- self.logger.log.assert_called_with(logging.DEBUG, 'Log - debug')
-
- def test_info(self):
- self.log.info('info')
- self.logger.log.assert_called_with(logging.INFO, 'Log - info')
-
- def test_warning(self):
- self.log.warn('warning')
- self.logger.log.assert_called_with(logging.WARN, 'Log - warning')
-
- def test_error(self):
- self.log.error('error', exc_info='exc')
- self.logger.log.assert_called_with(
- logging.ERROR, 'Log - error', exc_info='exc',
- )
-
- def test_critical(self):
- self.log.critical('crit', exc_info='exc')
- self.logger.log.assert_called_with(
- logging.CRITICAL, 'Log - crit', exc_info='exc',
- )
-
- def test_error_when_DISABLE_TRACEBACKS(self):
- from kombu import log
- log.DISABLE_TRACEBACKS = True
- try:
- self.log.error('error')
- self.logger.log.assert_called_with(logging.ERROR, 'Log - error')
- finally:
- log.DISABLE_TRACEBACKS = False
-
- def test_get_loglevel(self):
- self.assertEqual(self.log.get_loglevel('DEBUG'), logging.DEBUG)
- self.assertEqual(self.log.get_loglevel('ERROR'), logging.ERROR)
- self.assertEqual(self.log.get_loglevel(logging.INFO), logging.INFO)
-
- def test_is_enabled_for(self):
- self.logger.isEnabledFor.return_value = True
- self.assertTrue(self.log.is_enabled_for('DEBUG'))
- self.logger.isEnabledFor.assert_called_with(logging.DEBUG)
-
- def test_LogMixin_get_logger(self):
- self.assertIs(LogMixin().get_logger(),
- logging.getLogger('LogMixin'))
-
- def test_Log_get_logger(self):
- self.assertIs(Log('test_Log').get_logger(),
- logging.getLogger('test_Log'))
-
- def test_log_when_not_enabled(self):
- self.logger.isEnabledFor.return_value = False
- self.log.debug('debug')
- self.assertFalse(self.logger.log.called)
-
- def test_log_with_format(self):
- self.log.debug('Host %r removed', 'example.com')
- self.logger.log.assert_called_with(
- logging.DEBUG, 'Log - Host %s removed', "'example.com'",
- )
-
-
- class test_setup_logging(Case):
-
- @patch('logging.getLogger')
- def test_set_up_default_values(self, getLogger):
- logger = logging.getLogger.return_value = Mock()
- logger.handlers = []
- setup_logging()
-
- logger.setLevel.assert_called_with(logging.ERROR)
- self.assertTrue(logger.addHandler.called)
- ah_args, _ = logger.addHandler.call_args
- handler = ah_args[0]
- self.assertIsInstance(handler, logging.StreamHandler)
- self.assertIs(handler.stream, sys.__stderr__)
-
- @patch('logging.getLogger')
- @patch('kombu.log.WatchedFileHandler')
- def test_setup_custom_values(self, getLogger, WatchedFileHandler):
- logger = logging.getLogger.return_value = Mock()
- logger.handlers = []
- setup_logging(loglevel=logging.DEBUG, logfile='/var/logfile')
-
- logger.setLevel.assert_called_with(logging.DEBUG)
- self.assertTrue(logger.addHandler.called)
- self.assertTrue(WatchedFileHandler.called)
-
- @patch('logging.getLogger')
- def test_logger_already_setup(self, getLogger):
- logger = logging.getLogger.return_value = Mock()
- logger.handlers = [Mock()]
- setup_logging()
-
- self.assertFalse(logger.setLevel.called)
|