mirror of
https://github.com/borgmatic-collective/borgmatic.git
synced 2026-08-04 07:23:01 +02:00
105 lines
4.2 KiB
Python
105 lines
4.2 KiB
Python
from flexmock import flexmock
|
|
|
|
from borgmatic.config import paths as module
|
|
|
|
|
|
def test_expand_user_in_path_passes_through_plain_directory():
|
|
flexmock(module.os.path).should_receive('expanduser').and_return('/home/foo')
|
|
assert module.expand_user_in_path('/home/foo') == '/home/foo'
|
|
|
|
|
|
def test_expand_user_in_path_expands_tildes():
|
|
flexmock(module.os.path).should_receive('expanduser').and_return('/home/foo')
|
|
assert module.expand_user_in_path('~/foo') == '/home/foo'
|
|
|
|
|
|
def test_expand_user_in_path_handles_empty_directory():
|
|
assert module.expand_user_in_path('') is None
|
|
|
|
|
|
def test_expand_user_in_path_handles_none_directory():
|
|
assert module.expand_user_in_path(None) is None
|
|
|
|
|
|
def test_get_borgmatic_source_directory_uses_config_option():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
|
|
assert module.get_borgmatic_source_directory({'borgmatic_source_directory': '/tmp'}) == '/tmp'
|
|
|
|
|
|
def test_get_borgmatic_source_directory_without_config_option_uses_default():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
|
|
assert module.get_borgmatic_source_directory({}) == '~/.borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_runtime_directory_uses_config_option():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
|
|
assert (
|
|
module.get_borgmatic_runtime_directory(
|
|
{'user_runtime_directory': '/tmp', 'borgmatic_source_directory': '/nope'}
|
|
)
|
|
== '/tmp/./borgmatic'
|
|
)
|
|
|
|
|
|
def test_get_borgmatic_runtime_directory_falls_back_to_linux_environment_variable():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').with_args('XDG_RUNTIME_DIR').and_return(
|
|
'/tmp'
|
|
)
|
|
|
|
assert module.get_borgmatic_runtime_directory({}) == '/tmp/./borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_runtime_directory_falls_back_to_macos_environment_variable():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').with_args('XDG_RUNTIME_DIR').and_return(None)
|
|
flexmock(module.os.environ).should_receive('get').with_args('TMPDIR').and_return('/tmp')
|
|
|
|
assert module.get_borgmatic_runtime_directory({}) == '/tmp/./borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_runtime_directory_falls_back_to_other_environment_variable():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').with_args('XDG_RUNTIME_DIR').and_return(None)
|
|
flexmock(module.os.environ).should_receive('get').with_args('TMPDIR').and_return(None)
|
|
flexmock(module.os.environ).should_receive('get').with_args('TEMP').and_return('/tmp')
|
|
|
|
assert module.get_borgmatic_runtime_directory({}) == '/tmp/./borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_runtime_directory_defaults_to_hard_coded_path():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').and_return('/run/user/0')
|
|
flexmock(module.os).should_receive('getuid').and_return(0)
|
|
|
|
assert module.get_borgmatic_runtime_directory({}) == '/run/user/0/./borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_state_directory_uses_config_option():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
|
|
assert (
|
|
module.get_borgmatic_state_directory(
|
|
{'user_state_directory': '/tmp', 'borgmatic_source_directory': '/nope'}
|
|
)
|
|
== '/tmp/borgmatic'
|
|
)
|
|
|
|
|
|
def test_get_borgmatic_state_directory_falls_back_to_environment_variable():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').with_args(
|
|
'XDG_STATE_HOME', object
|
|
).and_return('/tmp')
|
|
|
|
assert module.get_borgmatic_state_directory({}) == '/tmp/borgmatic'
|
|
|
|
|
|
def test_get_borgmatic_state_directory_defaults_to_hard_coded_path():
|
|
flexmock(module).should_receive('expand_user_in_path').replace_with(lambda path: path)
|
|
flexmock(module.os.environ).should_receive('get').and_return('/root/.local/state')
|
|
assert module.get_borgmatic_state_directory({}) == '/root/.local/state/borgmatic'
|