def __init__(self, config, compression, path=None): if not config.custom_compression_filter: raise CompressionIncompatibility("custom_compression_filter") if not config.custom_decompression_filter: raise CompressionIncompatibility("custom_decompression_filter") super(CustomCompressor, self).__init__(config, compression, path) self._compress = self._build_command(config.custom_compression_filter) self._decompress = self._build_command( config.custom_decompression_filter)
def test_check_redundancy(self, tmpdir): """ Test the check method """ # Setup temp dir and server # build a backup_manager and setup a basic configuration backup_manager = build_backup_manager(name='TestServer', global_conf={ 'barman_home': tmpdir.strpath, 'minimum_redundancy': "1" }) backup_manager.executor = mock.MagicMock() # Test the unsatisfied minimum_redundancy option strategy_mock = mock.MagicMock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_called_with( 'TestServer', 'minimum redundancy requirements', False, 'have 0 backups, expected at least 1') # Test the satisfied minimum_redundancy option b_info = build_test_backup_info( backup_id='fake_backup_id', server=backup_manager.server, ) b_info.save() strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a success from the method strategy_mock.result.assert_called_with( 'TestServer', 'minimum redundancy requirements', True, 'have 1 backups, expected at least 1') # Test for no failed backups strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call('TestServer', 'failed backups', True, 'there are 0 failed backups') # Test for failed backups in catalog b_info = build_test_backup_info( backup_id='failed_backup_id', server=backup_manager.server, status=BackupInfo.FAILED, ) b_info.save() strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call('TestServer', 'failed backups', False, 'there are 1 failed backups') # Test unknown compression backup_manager.config.compression = 'test_compression' backup_manager.compression_manager.check.return_value = False strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call('TestServer', 'compression settings', False) # Test valid compression backup_manager.config.compression = 'test_compression' backup_manager.compression_manager.check.return_value = True strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a success from the method strategy_mock.result.assert_any_call('TestServer', 'compression settings', True) # Test failure retrieving a compressor backup_manager.config.compression = 'test_compression' backup_manager.compression_manager.check.return_value = True backup_manager.compression_manager.get_compressor.side_effect = \ CompressionIncompatibility() strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call('TestServer', 'compression settings', False)
def test_check_redundancy(self, tmpdir): """ Test the check method """ # Setup temp dir and server # build a backup_manager and setup a basic configuration backup_manager = build_backup_manager( name="TestServer", global_conf={"barman_home": tmpdir.strpath, "minimum_redundancy": "1"}, ) backup_manager.executor = mock.MagicMock() # Test the unsatisfied minimum_redundancy option strategy_mock = mock.MagicMock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_called_with( "TestServer", False, hint="have 0 backups, expected at least 1" ) # Test the satisfied minimum_redundancy option b_info = build_test_backup_info( backup_id="fake_backup_id", server=backup_manager.server, ) b_info.save() strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a success from the method strategy_mock.result.assert_called_with( "TestServer", True, hint="have 1 backups, expected at least 1" ) # Test for no failed backups strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call( "TestServer", True, hint="there are 0 failed backups" ) # Test for failed backups in catalog b_info = build_test_backup_info( backup_id="failed_backup_id", server=backup_manager.server, status=BackupInfo.FAILED, ) b_info.save() strategy_mock.reset_mock() backup_manager._load_backup_cache() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call( "TestServer", False, hint="there are 1 failed backups" ) # Test unknown compression backup_manager.config.compression = "test_compression" backup_manager.compression_manager.check.return_value = False strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call("TestServer", False) # Test valid compression backup_manager.config.compression = "test_compression" backup_manager.compression_manager.check.return_value = True strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a success from the method strategy_mock.result.assert_any_call("TestServer", True) # Test failure retrieving a compressor backup_manager.config.compression = "test_compression" backup_manager.compression_manager.check.return_value = True backup_manager.compression_manager.get_default_compressor.side_effect = ( CompressionIncompatibility() ) strategy_mock.reset_mock() backup_manager.check(strategy_mock) # Expect a failure from the method strategy_mock.result.assert_any_call("TestServer", False)