def test_create_archive_with_two_spaces_in_source_directories(): insert_subprocess_mock(CREATE_COMMAND) insert_platform_mock() insert_datetime_mock() module.create_archive( excludes_filename='excludes', verbosity=None, storage_config={}, source_directories='foo bar', repository='repo', command='borg', )
def test_create_archive_with_umask_should_call_borg_with_umask_parameters(): insert_subprocess_mock(CREATE_COMMAND + ('--umask', '740')) insert_platform_mock() insert_datetime_mock() module.create_archive( excludes_filename='excludes', verbosity=None, storage_config={'umask': 740}, source_directories='foo bar', repository='repo', command='borg', )
def test_create_archive_with_none_excludes_filename_should_call_borg_without_excludes( ): insert_subprocess_mock(CREATE_COMMAND_WITHOUT_EXCLUDES) insert_platform_mock() insert_datetime_mock() module.create_archive( excludes_filename=None, verbosity=None, storage_config={}, source_directories='foo bar', repository='repo', command='borg', )
def test_create_archive_with_verbosity_lots_should_call_borg_with_debug_parameter( ): insert_subprocess_mock(CREATE_COMMAND + ('--debug', '--list', '--stats')) insert_platform_mock() insert_datetime_mock() module.create_archive( excludes_filename='excludes', verbosity=VERBOSITY_LOTS, storage_config={}, source_directories='foo bar', repository='repo', command='borg', )
def test_create_archive_with_glob_should_call_borg_with_expanded_directories(): insert_subprocess_mock(('borg', 'create', 'repo::host-now', 'foo', 'food')) insert_platform_mock() insert_datetime_mock() flexmock(module).should_receive('glob').with_args('foo*').and_return( ['foo', 'food']) module.create_archive( excludes_filename=None, verbosity=None, storage_config={}, source_directories='foo*', repository='repo', command='borg', )
def test_create_archive_with_one_file_system_should_call_borg_with_one_file_system_parameters( ): insert_subprocess_mock(CREATE_COMMAND + ('--one-file-system', )) insert_platform_mock() insert_datetime_mock() module.create_archive( excludes_filename='excludes', verbosity=None, storage_config={}, source_directories='foo bar', repository='repo', command='borg', one_file_system=True, )
def main(): try: args = parse_arguments(*sys.argv[1:]) config = parse_configuration(args.config_filename, CONFIG_FORMAT) repository = config.location['repository'] remote_path = config.location.get('remote_path') borg.initialize(config.storage) borg.create_archive(args.excludes_filename, args.verbosity, config.storage, **config.location) borg.prune_archives(args.verbosity, repository, config.retention, remote_path=remote_path) borg.check_archives(args.verbosity, repository, config.consistency, remote_path=remote_path) except (ValueError, IOError, CalledProcessError) as error: print(error, file=sys.stderr) sys.exit(1)