| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | import loggingimport pytestfrom flexmock import flexmockfrom borgmatic import verbosity as moduledef insert_logging_mock(log_level):    '''    Mock the isEnabledFor from Python logging.    '''    logging = flexmock(module.logging.Logger)    logging.should_receive('isEnabledFor').replace_with(lambda level: level >= log_level)    logging.should_receive('getEffectiveLevel').replace_with(lambda: log_level)def test_verbosity_to_log_level_maps_known_verbosity_to_log_level():    flexmock(module.borgmatic.logger).should_receive('add_custom_log_levels')    flexmock(module.logging).ANSWER = module.borgmatic.logger.ANSWER    flexmock(module.logging).DISABLED = module.borgmatic.logger.DISABLED    assert module.verbosity_to_log_level(module.VERBOSITY_ERROR) == logging.ERROR    assert module.verbosity_to_log_level(module.VERBOSITY_ANSWER) == module.borgmatic.logger.ANSWER    assert module.verbosity_to_log_level(module.VERBOSITY_SOME) == logging.INFO    assert module.verbosity_to_log_level(module.VERBOSITY_LOTS) == logging.DEBUG    assert module.verbosity_to_log_level(module.VERBOSITY_DISABLED) == logging.DISABLEDdef test_verbosity_to_log_level_maps_unknown_verbosity_to_warning_level():    flexmock(module.borgmatic.logger).should_receive('add_custom_log_levels')    flexmock(module.logging).ANSWER = module.borgmatic.logger.ANSWER    assert module.verbosity_to_log_level('my pants') == logging.WARNING@pytest.mark.parametrize(    'option_name',    (        'verbosity',        'syslog_verbosity',        'log_file_verbosity',        'monitoring_verbosity',    ),)def test_get_verbosity_gets_maximum_verbosity_across_configurations(option_name):    assert (        module.get_verbosity(            configs={                'test1.yaml': {option_name: -1},                'test2.yaml': {option_name: 2},                'test3.yaml': {option_name: None},            },            option_name=option_name,        )        == 2    )@pytest.mark.parametrize(    'option_name',    (        'verbosity',        'syslog_verbosity',        'log_file_verbosity',        'monitoring_verbosity',    ),)def test_get_verbosity_with_nothing_set_gets_default_verbosity(option_name):    assert (        module.get_verbosity(            configs={                'test1.yaml': {},                'test2.yaml': {'other': 'thing'},            },            option_name=option_name,        )        == module.DEFAULT_VERBOSITIES[option_name]    )@pytest.mark.parametrize(    'option_name',    (        'verbosity',        'syslog_verbosity',        'log_file_verbosity',        'monitoring_verbosity',    ),)def test_get_verbosity_with_no_configs_set_gets_default_verbosity(option_name):    assert (        module.get_verbosity(            configs={},            option_name=option_name,        )        == module.DEFAULT_VERBOSITIES[option_name]    )
 |