From 39ad8f64c4d9038f3ca16d6902420fe15579bba0 Mon Sep 17 00:00:00 2001 From: Divyansh Singh Date: Tue, 21 Mar 2023 17:06:03 +0530 Subject: [PATCH] add tests and remove magic number --- borgmatic/borg/export_tar.py | 6 +----- borgmatic/borg/extract.py | 6 +----- borgmatic/config/normalize.py | 4 +++- borgmatic/config/validate.py | 2 +- tests/unit/config/test_normalize.py | 5 +++++ tests/unit/config/test_validate.py | 7 +++++++ 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/borgmatic/borg/export_tar.py b/borgmatic/borg/export_tar.py index a3f05d5..a5b752c 100644 --- a/borgmatic/borg/export_tar.py +++ b/borgmatic/borg/export_tar.py @@ -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 ()) ) diff --git a/borgmatic/borg/extract.py b/borgmatic/borg/extract.py index 24014c9..6c32f7f 100644 --- a/borgmatic/borg/extract.py +++ b/borgmatic/borg/extract.py @@ -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 ()) ) diff --git a/borgmatic/config/normalize.py b/borgmatic/config/normalize.py index 7a25014..a143a19 100644 --- a/borgmatic/config/normalize.py +++ b/borgmatic/config/normalize.py @@ -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: diff --git a/borgmatic/config/validate.py b/borgmatic/config/validate.py index d25fb56..5828380 100644 --- a/borgmatic/config/validate.py +++ b/borgmatic/config/validate.py @@ -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 diff --git a/tests/unit/config/test_normalize.py b/tests/unit/config/test_normalize.py index 384dd7e..821c320 100644 --- a/tests/unit/config/test_normalize.py +++ b/tests/unit/config/test_normalize.py @@ -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( diff --git a/tests/unit/config/test_validate.py b/tests/unit/config/test_validate.py index 713ecc7..6a9f4a4 100644 --- a/tests/unit/config/test_validate.py +++ b/tests/unit/config/test_validate.py @@ -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)