More tests for colored logging.
This commit is contained in:
parent
620f9e64d6
commit
a13cc0ab17
4 changed files with 43 additions and 12 deletions
|
@ -64,9 +64,9 @@ def convert_legacy_parsed_config(source_config, source_excludes, schema):
|
|||
return destination_config
|
||||
|
||||
|
||||
class LegacyConfigurationNotUpgraded(FileNotFoundError):
|
||||
class Legacy_configuration_not_upgraded(FileNotFoundError):
|
||||
def __init__(self):
|
||||
super(LegacyConfigurationNotUpgraded, self).__init__(
|
||||
super(Legacy_configuration_not_upgraded, self).__init__(
|
||||
'''borgmatic changed its configuration file format in version 1.1.0 from INI-style
|
||||
to YAML. This better supports validation, and has a more natural way to express
|
||||
lists of values. To upgrade your existing configuration, run:
|
||||
|
@ -83,7 +83,7 @@ instead of the old one.'''
|
|||
def guard_configuration_upgraded(source_config_filename, destination_config_filenames):
|
||||
'''
|
||||
If legacy source configuration exists but no destination upgraded configs do, raise
|
||||
LegacyConfigurationNotUpgraded.
|
||||
Legacy_configuration_not_upgraded.
|
||||
|
||||
The idea is that we want to alert the user about upgrading their config if they haven't already.
|
||||
'''
|
||||
|
@ -92,4 +92,4 @@ def guard_configuration_upgraded(source_config_filename, destination_config_file
|
|||
)
|
||||
|
||||
if os.path.exists(source_config_filename) and not destination_config_exists:
|
||||
raise LegacyConfigurationNotUpgraded()
|
||||
raise Legacy_configuration_not_upgraded()
|
||||
|
|
|
@ -38,32 +38,38 @@ def should_do_markup(no_color):
|
|||
|
||||
LOG_LEVEL_TO_COLOR = {
|
||||
logging.CRITICAL: colorama.Fore.RED,
|
||||
logging.ERROR: colorama.Fore.RED,
|
||||
logging.WARN: colorama.Fore.YELLOW,
|
||||
logging.INFO: colorama.Fore.GREEN,
|
||||
logging.DEBUG: colorama.Fore.CYAN,
|
||||
}
|
||||
|
||||
|
||||
class BorgmaticLogger(logging.Logger):
|
||||
class Borgmatic_logger(logging.Logger):
|
||||
def critical(self, msg, *args, **kwargs):
|
||||
color = LOG_LEVEL_TO_COLOR.get(logging.CRITICAL)
|
||||
|
||||
return super(BorgmaticLogger, self).critical(color_text(color, msg), *args, **kwargs)
|
||||
return super(Borgmatic_logger, self).critical(color_text(color, msg), *args, **kwargs)
|
||||
|
||||
def error(self, msg, *args, **kwargs):
|
||||
color = LOG_LEVEL_TO_COLOR.get(logging.ERROR)
|
||||
|
||||
return super(Borgmatic_logger, self).error(color_text(color, msg), *args, **kwargs)
|
||||
|
||||
def warn(self, msg, *args, **kwargs):
|
||||
color = LOG_LEVEL_TO_COLOR.get(logging.WARN)
|
||||
|
||||
return super(BorgmaticLogger, self).warn(color_text(color, msg), *args, **kwargs)
|
||||
return super(Borgmatic_logger, self).warn(color_text(color, msg), *args, **kwargs)
|
||||
|
||||
def info(self, msg, *args, **kwargs):
|
||||
color = LOG_LEVEL_TO_COLOR.get(logging.INFO)
|
||||
|
||||
return super(BorgmaticLogger, self).info(color_text(color, msg), *args, **kwargs)
|
||||
return super(Borgmatic_logger, self).info(color_text(color, msg), *args, **kwargs)
|
||||
|
||||
def debug(self, msg, *args, **kwargs):
|
||||
color = LOG_LEVEL_TO_COLOR.get(logging.DEBUG)
|
||||
|
||||
return super(BorgmaticLogger, self).debug(color_text(color, msg), *args, **kwargs)
|
||||
return super(Borgmatic_logger, self).debug(color_text(color, msg), *args, **kwargs)
|
||||
|
||||
def handle(self, record):
|
||||
color = LOG_LEVEL_TO_COLOR.get(record.levelno)
|
||||
|
@ -71,14 +77,14 @@ class BorgmaticLogger(logging.Logger):
|
|||
dict(levelno=record.levelno, msg=color_text(color, record.msg))
|
||||
)
|
||||
|
||||
return super(BorgmaticLogger, self).handle(colored_record)
|
||||
return super(Borgmatic_logger, self).handle(colored_record)
|
||||
|
||||
|
||||
def get_logger(name=None):
|
||||
'''
|
||||
Build a logger with the given name.
|
||||
'''
|
||||
logging.setLoggerClass(BorgmaticLogger)
|
||||
logging.setLoggerClass(Borgmatic_logger)
|
||||
logger = logging.getLogger(name)
|
||||
logger.propagate = False
|
||||
return logger
|
||||
|
|
|
@ -91,7 +91,7 @@ def test_guard_configuration_upgraded_raises_when_only_source_config_present():
|
|||
flexmock(os.path).should_receive('exists').with_args('config.yaml').and_return(False)
|
||||
flexmock(os.path).should_receive('exists').with_args('other.yaml').and_return(False)
|
||||
|
||||
with pytest.raises(module.LegacyConfigurationNotUpgraded):
|
||||
with pytest.raises(module.Legacy_configuration_not_upgraded):
|
||||
module.guard_configuration_upgraded('config', ('config.yaml', 'other.yaml'))
|
||||
|
||||
|
||||
|
|
|
@ -47,3 +47,28 @@ def test_should_do_markup_prefers_PY_COLORS_to_stdout_tty_value():
|
|||
flexmock(module).should_receive('to_bool').and_return(True)
|
||||
|
||||
assert module.should_do_markup(no_color=False) is True
|
||||
|
||||
|
||||
@pytest.mark.parametrize('method_name', ('critical', 'error', 'warn', 'info', 'debug'))
|
||||
def test_borgmatic_logger_log_method_does_not_raise(method_name):
|
||||
flexmock(module).should_receive('color_text')
|
||||
flexmock(module.logging.Logger).should_receive(method_name)
|
||||
|
||||
getattr(module.Borgmatic_logger('test'), method_name)(msg='hi')
|
||||
|
||||
|
||||
def test_borgmatic_logger_handle_does_not_raise():
|
||||
flexmock(module).should_receive('color_text')
|
||||
flexmock(module.logging.Logger).should_receive('handle')
|
||||
|
||||
module.Borgmatic_logger('test').handle(
|
||||
module.logging.makeLogRecord(dict(levelno=module.logging.CRITICAL, msg='hi'))
|
||||
)
|
||||
|
||||
|
||||
def test_color_text_does_not_raise():
|
||||
module.color_text(module.colorama.Fore.RED, 'hi')
|
||||
|
||||
|
||||
def test_color_text_without_color_does_not_raise():
|
||||
module.color_text(None, 'hi')
|
||||
|
|
Loading…
Reference in a new issue