Vandal 2 hónapja
szülő
commit
a8726c408a

+ 2 - 3
borgmatic/borg/recreate.py

@@ -3,7 +3,7 @@ import logging
 import borgmatic.borg.environment
 import borgmatic.config.paths
 import borgmatic.execute
-from borgmatic.borg.create import make_exclude_flags, write_patterns_file, make_list_filter_flags
+from borgmatic.borg.create import make_exclude_flags, make_list_filter_flags, write_patterns_file
 from borgmatic.borg.flags import make_repository_archive_flags
 
 logger = logging.getLogger(__name__)
@@ -64,11 +64,10 @@ def recreate_archive(
         return
 
     borgmatic.execute.execute_command(
-        recreate_cmd,
+        full_command=recreate_cmd,
         output_log_level=logging.INFO,
         environment=borgmatic.borg.environment.make_environment(config),
         working_directory=borgmatic.config.paths.get_working_directory(config),
-        remote_path=remote_path,
         borg_local_path=local_path,
         borg_exit_codes=config.get('borg_exit_codes'),
     )

+ 1 - 1
borgmatic/commands/borgmatic.py

@@ -17,7 +17,6 @@ import borgmatic.actions.config.bootstrap
 import borgmatic.actions.config.generate
 import borgmatic.actions.config.validate
 import borgmatic.actions.create
-import borgmatic.actions.recreate
 import borgmatic.actions.delete
 import borgmatic.actions.export_key
 import borgmatic.actions.export_tar
@@ -27,6 +26,7 @@ import borgmatic.actions.info
 import borgmatic.actions.list
 import borgmatic.actions.mount
 import borgmatic.actions.prune
+import borgmatic.actions.recreate
 import borgmatic.actions.repo_create
 import borgmatic.actions.repo_delete
 import borgmatic.actions.repo_info

+ 64 - 0
tests/unit/borg/test_recreate.py

@@ -0,0 +1,64 @@
+# import logging
+
+from flexmock import flexmock
+
+from borgmatic.borg import recreate as module
+
+# from ..test_verbosity import insert_logging_mock
+
+# from borgmatic.borg.pattern import Pattern, Pattern_type, Pattern_style, Pattern_source
+# from borgmatic.borg.create import make_exclude_flags, make_list_filter_flags
+
+
+def insert_execute_command_mock(command, working_directory=None, borg_exit_codes=None):
+    flexmock(module.borgmatic.borg.environment).should_receive('make_environment')
+    flexmock(module.borgmatic.execute).should_receive('execute_command').with_args(
+        full_command=command,
+        output_log_level=module.logging.INFO,
+        environment=None,
+        working_directory=working_directory,
+        borg_local_path=command[0],
+        borg_exit_codes=borg_exit_codes,
+    ).once()
+
+
+def test_recreate_archive_dry_run_skips_execution():
+    flexmock(module.borgmatic.borg.flags).should_receive(
+        'make_repository_archive_flags'
+    ).and_return(('repo::archive',))
+    flexmock(module.borgmatic.execute).should_receive('execute_command').never()
+
+    recreate_arguments = flexmock(repository=flexmock(), list=None, path=None)
+
+    result = module.recreate_archive(
+        repository='repo',
+        archive='archive',
+        config={},
+        local_borg_version='1.2.3',
+        recreate_arguments=recreate_arguments,
+        global_arguments=flexmock(log_json=False, dry_run=True),
+        local_path='borg',
+    )
+
+    assert result is None
+
+
+def test_recreate_calls_borg_with_required_flags():
+    flexmock(module.borgmatic.borg.flags).should_receive('make_repository_flags').and_return(
+        ('repo::archive',)
+    )
+    flexmock(module).should_receive('write_patterns_file').and_return(None)
+    flexmock(module).should_receive('make_list_filter_flags').and_return(None)
+    insert_execute_command_mock(('borg', 'recreate', 'repo::archive'))
+
+    module.recreate_archive(
+        repository='repo',
+        archive='archive',
+        config={},
+        local_borg_version='1.2.3',
+        recreate_arguments=flexmock(path=None, list=None),
+        global_arguments=flexmock(dry_run=False, log_json=False),
+        local_path='borg',
+        remote_path=None,
+        patterns=None,
+    )