Пример #1
0
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',
    )
Пример #2
0
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',
    )
Пример #3
0
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',
    )
Пример #4
0
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',
    )
Пример #5
0
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',
    )
Пример #6
0
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,
    )
Пример #7
0
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)