Jelajahi Sumber

Fix tests for remaining hooks (#962).

Dan Helfman 4 bulan lalu
induk
melakukan
ad14ff3ee5

+ 1 - 1
borgmatic/hooks/data_source/btrfs.py

@@ -172,7 +172,7 @@ def make_borg_snapshot_pattern(subvolume_path, pattern):
         else ''
         else ''
     )
     )
 
 
-    written_path = initial_caret + os.path.join(
+    rewritten_path = initial_caret + os.path.join(
         subvolume_path,
         subvolume_path,
         f'{BORGMATIC_SNAPSHOT_PREFIX}{os.getpid()}',
         f'{BORGMATIC_SNAPSHOT_PREFIX}{os.getpid()}',
         '.',  # Borg 1.4+ "slashdot" hack.
         '.',  # Borg 1.4+ "slashdot" hack.

+ 3 - 3
tests/unit/hooks/data_source/test_bootstrap.py

@@ -27,7 +27,7 @@ def test_dump_data_sources_creates_manifest_file():
         log_prefix='test',
         log_prefix='test',
         config_paths=('test.yaml',),
         config_paths=('test.yaml',),
         borgmatic_runtime_directory='/run/borgmatic',
         borgmatic_runtime_directory='/run/borgmatic',
-        source_directories=[],
+        patterns=[],
         dry_run=False,
         dry_run=False,
     )
     )
 
 
@@ -43,7 +43,7 @@ def test_dump_data_sources_with_store_config_files_false_does_not_create_manifes
         log_prefix='test',
         log_prefix='test',
         config_paths=('test.yaml',),
         config_paths=('test.yaml',),
         borgmatic_runtime_directory='/run/borgmatic',
         borgmatic_runtime_directory='/run/borgmatic',
-        source_directories=[],
+        patterns=[],
         dry_run=True,
         dry_run=True,
     )
     )
 
 
@@ -58,7 +58,7 @@ def test_dump_data_sources_with_dry_run_does_not_create_manifest_file():
         log_prefix='test',
         log_prefix='test',
         config_paths=('test.yaml',),
         config_paths=('test.yaml',),
         borgmatic_runtime_directory='/run/borgmatic',
         borgmatic_runtime_directory='/run/borgmatic',
-        source_directories=[],
+        patterns=[],
         dry_run=True,
         dry_run=True,
     )
     )
 
 

+ 36 - 20
tests/unit/hooks/data_source/test_btrfs.py

@@ -92,11 +92,11 @@ def test_get_subvolumes_collects_subvolumes_matching_patterns_from_all_filesyste
 
 
     for path in ('/one', '/four'):
     for path in ('/one', '/four'):
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
-            'get_contained_directories'
-        ).with_args(path, object).and_return((path,))
+            'get_contained_patterns'
+        ).with_args(path, object).and_return((Pattern(path),))
     for path in ('/two', '/three'):
     for path in ('/two', '/three'):
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
-            'get_contained_directories'
+            'get_contained_patterns'
         ).with_args(path, object).and_return(())
         ).with_args(path, object).and_return(())
 
 
     assert module.get_subvolumes(
     assert module.get_subvolumes(
@@ -125,8 +125,8 @@ def test_get_subvolumes_without_patterns_collects_all_subvolumes_from_all_filesy
 
 
     for path in ('/one', '/two', '/three', '/four'):
     for path in ('/one', '/two', '/three', '/four'):
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
         flexmock(module.borgmatic.hooks.data_source.snapshot).should_receive(
-            'get_contained_directories'
-        ).with_args(path, object).and_return((path,))
+            'get_contained_patterns'
+        ).with_args(path, object).and_return((Pattern(path),))
 
 
     assert module.get_subvolumes('btrfs', 'findmnt') == (
     assert module.get_subvolumes('btrfs', 'findmnt') == (
         module.Subvolume('/four', contained_patterns=(Pattern('/four'),)),
         module.Subvolume('/four', contained_patterns=(Pattern('/four'),)),
@@ -233,14 +233,20 @@ def test_dump_data_sources_snapshots_each_subvolume_and_updates_patterns():
     assert patterns == [
     assert patterns == [
         Pattern('/foo'),
         Pattern('/foo'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
+        Pattern(
+            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        ),
         Pattern('/mnt/subvol2/.borgmatic-1234/mnt/subvol2'),
         Pattern('/mnt/subvol2/.borgmatic-1234/mnt/subvol2'),
+        Pattern(
+            '/mnt/subvol2/.borgmatic-1234/mnt/subvol2/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        ),
     ]
     ]
     assert config == {
     assert config == {
         'btrfs': {},
         'btrfs': {},
-        'exclude_patterns': [
-            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
-            '/mnt/subvol2/.borgmatic-1234/mnt/subvol2/.borgmatic-1234',
-        ],
     }
     }
 
 
 
 
@@ -285,14 +291,16 @@ def test_dump_data_sources_uses_custom_btrfs_command_in_commands():
     assert patterns == [
     assert patterns == [
         Pattern('/foo'),
         Pattern('/foo'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
+        Pattern(
+            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        ),
     ]
     ]
     assert config == {
     assert config == {
         'btrfs': {
         'btrfs': {
             'btrfs_command': '/usr/local/bin/btrfs',
             'btrfs_command': '/usr/local/bin/btrfs',
         },
         },
-        'exclude_patterns': [
-            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
-        ],
     }
     }
 
 
 
 
@@ -339,14 +347,16 @@ def test_dump_data_sources_uses_custom_findmnt_command_in_commands():
     assert patterns == [
     assert patterns == [
         Pattern('/foo'),
         Pattern('/foo'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
+        Pattern(
+            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        )
     ]
     ]
     assert config == {
     assert config == {
         'btrfs': {
         'btrfs': {
             'findmnt_command': '/usr/local/bin/findmnt',
             'findmnt_command': '/usr/local/bin/findmnt',
         },
         },
-        'exclude_patterns': [
-            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
-        ],
     }
     }
 
 
 
 
@@ -466,15 +476,21 @@ def test_dump_data_sources_snapshots_adds_to_existing_exclude_patterns():
     assert patterns == [
     assert patterns == [
         Pattern('/foo'),
         Pattern('/foo'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
         Pattern('/mnt/subvol1/.borgmatic-1234/mnt/subvol1'),
+        Pattern(
+            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        ),
         Pattern('/mnt/subvol2/.borgmatic-1234/mnt/subvol2'),
         Pattern('/mnt/subvol2/.borgmatic-1234/mnt/subvol2'),
+        Pattern(
+            '/mnt/subvol2/.borgmatic-1234/mnt/subvol2/.borgmatic-1234',
+            Pattern_type.EXCLUDE,
+            Pattern_style.FNMATCH,
+        ),
     ]
     ]
     assert config == {
     assert config == {
         'btrfs': {},
         'btrfs': {},
-        'exclude_patterns': [
-            '/bar',
-            '/mnt/subvol1/.borgmatic-1234/mnt/subvol1/.borgmatic-1234',
-            '/mnt/subvol2/.borgmatic-1234/mnt/subvol2/.borgmatic-1234',
-        ],
+        'exclude_patterns': ['/bar'],
     }
     }