add tests and remove magic number

This commit is contained in:
Divyansh Singh 2023-03-21 17:06:03 +05:30
parent e86d223bbf
commit 39ad8f64c4
6 changed files with 18 additions and 12 deletions

View File

@ -46,11 +46,7 @@ def export_tar_archive(
+ (('--dry-run',) if dry_run else ())
+ (('--tar-filter', tar_filter) if tar_filter else ())
+ (('--strip-components', str(strip_components)) if strip_components else ())
+ flags.make_repository_archive_flags(
repository,
archive,
local_borg_version,
)
+ flags.make_repository_archive_flags(repository, archive, local_borg_version,)
+ (destination_path,)
+ (tuple(paths) if paths else ())
)

View File

@ -106,11 +106,7 @@ def extract_archive(
+ (('--strip-components', str(strip_components)) if strip_components else ())
+ (('--progress',) if progress else ())
+ (('--stdout',) if extract_to_stdout else ())
+ flags.make_repository_archive_flags(
repository,
archive,
local_borg_version,
)
+ flags.make_repository_archive_flags(repository, archive, local_borg_version,)
+ (tuple(paths) if paths else ())
)

View File

@ -71,7 +71,9 @@ def normalize(config_filename, config):
)
if ':' in repository:
if repository.startswith('file://'):
config['location']['repositories'].append(os.path.abspath(repository[7:]))
config['location']['repositories'].append(
os.path.abspath(repository.partition('file://')[-1])
)
elif repository.startswith('ssh://'):
config['location']['repositories'].append(repository)
else:

View File

@ -131,7 +131,7 @@ def normalize_repository_path(repository):
if ':' not in repository:
return os.path.abspath(repository)
elif repository.startswith('file://'):
return os.path.abspath(repository[7:])
return os.path.abspath(repository.partition('file://')[-1])
else:
return repository

View File

@ -87,6 +87,11 @@ from borgmatic.config import normalize as module
{'location': {'repositories': ['ssh://foo@bar:1234/repo']}},
False,
),
(
{'location': {'repositories': ['file:///repo']}},
{'location': {'repositories': ['/repo']}},
False,
),
),
)
def test_normalize_applies_hard_coded_normalization_to_config(

View File

@ -83,6 +83,13 @@ def test_normalize_repository_path_passes_through_remote_repository():
module.normalize_repository_path(repository) == repository
def test_normalize_repository_path_passes_through_file_repository():
repository = 'file:///foo/bar/test.borg'
flexmock(module.os.path).should_receive('abspath').and_return('/foo/bar/test.borg')
module.normalize_repository_path(repository) == '/foo/bar/test.borg'
def test_normalize_repository_path_passes_through_absolute_repository():
repository = '/foo/bar/test.borg'
flexmock(module.os.path).should_receive('abspath').and_return(repository)