| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from flexmock import flexmock
- from borgmatic.borg.pattern import Pattern, Pattern_style, Pattern_type
- from borgmatic.hooks.data_source import btrfs as module
- def test_dump_data_sources_snapshots_each_subvolume_and_updates_patterns():
- patterns = [Pattern('/foo'), Pattern('/mnt/subvol1'), Pattern('/mnt/subvol2')]
- config = {'btrfs': {}}
- flexmock(module).should_receive('get_subvolumes').and_return(
- (
- module.Subvolume('/mnt/subvol1', contained_patterns=(Pattern('/mnt/subvol1'),)),
- module.Subvolume('/mnt/subvol2', contained_patterns=(Pattern('/mnt/subvol2'),)),
- ),
- )
- flexmock(module.os).should_receive('getpid').and_return(1234)
- flexmock(module).should_receive('snapshot_subvolume').with_args(
- 'btrfs',
- '/mnt/subvol1',
- '/mnt/subvol1/.borgmatic-snapshot-1234/mnt/subvol1',
- ).once()
- flexmock(module).should_receive('snapshot_subvolume').with_args(
- 'btrfs',
- '/mnt/subvol2',
- '/mnt/subvol2/.borgmatic-snapshot-1234/mnt/subvol2',
- ).once()
- assert (
- module.dump_data_sources(
- hook_config=config['btrfs'],
- config=config,
- config_paths=('test.yaml',),
- borgmatic_runtime_directory='/run/borgmatic',
- patterns=patterns,
- dry_run=False,
- )
- == []
- )
- assert patterns == [
- Pattern(
- '/mnt/subvol2/.borgmatic-snapshot-1234/mnt/subvol2/.borgmatic-snapshot-1234',
- Pattern_type.NO_RECURSE,
- Pattern_style.FNMATCH,
- ),
- Pattern(
- '/mnt/subvol1/.borgmatic-snapshot-1234/mnt/subvol1/.borgmatic-snapshot-1234',
- Pattern_type.NO_RECURSE,
- Pattern_style.FNMATCH,
- ),
- Pattern('/foo'),
- Pattern('/mnt/subvol1/.borgmatic-snapshot-1234/./mnt/subvol1'),
- Pattern('/mnt/subvol1/.borgmatic-snapshot-1234/./mnt/subvol1', Pattern_type.INCLUDE),
- Pattern('/mnt/subvol2/.borgmatic-snapshot-1234/./mnt/subvol2'),
- Pattern('/mnt/subvol2/.borgmatic-snapshot-1234/./mnt/subvol2', Pattern_type.INCLUDE),
- ]
- assert config == {
- 'btrfs': {},
- }
|