|
@@ -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'],
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|