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
|
return destination_config
|
||||||
|
|
||||||
|
|
||||||
class LegacyConfigurationNotUpgraded(FileNotFoundError):
|
class Legacy_configuration_not_upgraded(FileNotFoundError):
|
||||||
def __init__(self):
|
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
|
'''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
|
to YAML. This better supports validation, and has a more natural way to express
|
||||||
lists of values. To upgrade your existing configuration, run:
|
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):
|
def guard_configuration_upgraded(source_config_filename, destination_config_filenames):
|
||||||
'''
|
'''
|
||||||
If legacy source configuration exists but no destination upgraded configs do, raise
|
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.
|
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:
|
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 = {
|
LOG_LEVEL_TO_COLOR = {
|
||||||
logging.CRITICAL: colorama.Fore.RED,
|
logging.CRITICAL: colorama.Fore.RED,
|
||||||
|
logging.ERROR: colorama.Fore.RED,
|
||||||
logging.WARN: colorama.Fore.YELLOW,
|
logging.WARN: colorama.Fore.YELLOW,
|
||||||
logging.INFO: colorama.Fore.GREEN,
|
logging.INFO: colorama.Fore.GREEN,
|
||||||
logging.DEBUG: colorama.Fore.CYAN,
|
logging.DEBUG: colorama.Fore.CYAN,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class BorgmaticLogger(logging.Logger):
|
class Borgmatic_logger(logging.Logger):
|
||||||
def critical(self, msg, *args, **kwargs):
|
def critical(self, msg, *args, **kwargs):
|
||||||
color = LOG_LEVEL_TO_COLOR.get(logging.CRITICAL)
|
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):
|
def warn(self, msg, *args, **kwargs):
|
||||||
color = LOG_LEVEL_TO_COLOR.get(logging.WARN)
|
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):
|
def info(self, msg, *args, **kwargs):
|
||||||
color = LOG_LEVEL_TO_COLOR.get(logging.INFO)
|
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):
|
def debug(self, msg, *args, **kwargs):
|
||||||
color = LOG_LEVEL_TO_COLOR.get(logging.DEBUG)
|
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):
|
def handle(self, record):
|
||||||
color = LOG_LEVEL_TO_COLOR.get(record.levelno)
|
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))
|
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):
|
def get_logger(name=None):
|
||||||
'''
|
'''
|
||||||
Build a logger with the given name.
|
Build a logger with the given name.
|
||||||
'''
|
'''
|
||||||
logging.setLoggerClass(BorgmaticLogger)
|
logging.setLoggerClass(Borgmatic_logger)
|
||||||
logger = logging.getLogger(name)
|
logger = logging.getLogger(name)
|
||||||
logger.propagate = False
|
logger.propagate = False
|
||||||
return logger
|
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('config.yaml').and_return(False)
|
||||||
flexmock(os.path).should_receive('exists').with_args('other.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'))
|
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)
|
flexmock(module).should_receive('to_bool').and_return(True)
|
||||||
|
|
||||||
assert module.should_do_markup(no_color=False) is 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