borgmatic/tests/unit/config/test_load.py

45 lines
1.5 KiB
Python

import pytest
from flexmock import flexmock
from borgmatic.config import load as module
def test_probe_and_include_file_with_absolute_path_skips_probing():
config = flexmock()
config_paths = set()
flexmock(module).should_receive('load_configuration').with_args(
'/etc/include.yaml', config_paths
).and_return(config).once()
assert (
module.probe_and_include_file('/etc/include.yaml', ['/etc', '/var'], config_paths) == config
)
def test_probe_and_include_file_with_relative_path_probes_include_directories():
config = {'foo': 'bar'}
config_paths = set()
flexmock(module.os.path).should_receive('exists').with_args('/etc/include.yaml').and_return(
False
)
flexmock(module.os.path).should_receive('exists').with_args('/var/include.yaml').and_return(
True
)
flexmock(module).should_receive('load_configuration').with_args(
'/etc/include.yaml', config_paths
).never()
flexmock(module).should_receive('load_configuration').with_args(
'/var/include.yaml', config_paths
).and_return(config).once()
assert module.probe_and_include_file('include.yaml', ['/etc', '/var'], config_paths) == {
'foo': 'bar',
}
def test_probe_and_include_file_with_relative_path_and_missing_files_raises():
flexmock(module.os.path).should_receive('exists').and_return(False)
flexmock(module).should_receive('load_configuration').never()
with pytest.raises(FileNotFoundError):
module.probe_and_include_file('include.yaml', ['/etc', '/var'], config_paths=set())