mirror of
https://github.com/borgmatic-collective/borgmatic.git
synced 2026-07-22 02:03:01 +02:00
198 lines
4.7 KiB
Python
198 lines
4.7 KiB
Python
import logging
|
|
|
|
from flexmock import flexmock
|
|
|
|
from borgmatic.borg import rename as module
|
|
|
|
|
|
def 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_make_rename_command_includes_log_info():
|
|
insert_logging_mock(logging.INFO)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == ('borg', 'rename', '--info', '--log-json', 'repo::old_archive', 'new_archive')
|
|
|
|
|
|
def test_make_rename_command_includes_log_debug():
|
|
insert_logging_mock(logging.DEBUG)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--debug',
|
|
'--show-rc',
|
|
'--log-json',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|
|
|
|
|
|
def test_make_rename_command_includes_dry_run():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=True,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--dry-run',
|
|
'--log-json',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|
|
|
|
|
|
def test_make_rename_command_includes_remote_path():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path='borg1',
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--remote-path',
|
|
'borg1',
|
|
'--log-json',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|
|
|
|
|
|
def test_make_rename_command_includes_umask():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={'umask': '077'},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--umask',
|
|
'077',
|
|
'--log-json',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|
|
|
|
|
|
def test_make_rename_command_includes_log_json():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={'log_json': True},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == ('borg', 'rename', '--log-json', 'repo::old_archive', 'new_archive')
|
|
|
|
|
|
def test_make_rename_command_includes_lock_wait():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={'lock_wait': 5},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--log-json',
|
|
'--lock-wait',
|
|
'5',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|
|
|
|
|
|
def test_make_rename_command_includes_extra_borg_options():
|
|
insert_logging_mock(logging.WARNING)
|
|
|
|
command = module.make_rename_command(
|
|
dry_run=False,
|
|
repository_name='repo',
|
|
old_archive_name='old_archive',
|
|
new_archive_name='new_archive',
|
|
config={'extra_borg_options': {'rename': '--extra "value with space"'}},
|
|
local_borg_version='1.2.3',
|
|
local_path='borg',
|
|
remote_path=None,
|
|
)
|
|
|
|
assert command == (
|
|
'borg',
|
|
'rename',
|
|
'--log-json',
|
|
'--extra',
|
|
'value with space',
|
|
'repo::old_archive',
|
|
'new_archive',
|
|
)
|