123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- import pytest
- from flexmock import flexmock
- from borgmatic.actions import repo_create as module
- def test_run_repo_create_with_encryption_mode_argument_does_not_raise():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository')
- arguments = flexmock(
- encryption_mode=flexmock(),
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=flexmock(),
- storage_quota=flexmock(),
- make_parent_directories=flexmock(),
- )
- module.run_repo_create(
- repository={'path': 'repo'},
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
- def test_run_repo_create_with_encryption_mode_option_does_not_raise():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository')
- arguments = flexmock(
- encryption_mode=None,
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=flexmock(),
- storage_quota=flexmock(),
- make_parent_directories=flexmock(),
- )
- module.run_repo_create(
- repository={'path': 'repo', 'encryption': flexmock()},
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
- def test_run_repo_create_without_encryption_mode_raises():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository')
- arguments = flexmock(
- encryption_mode=None,
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=flexmock(),
- storage_quota=flexmock(),
- make_parent_directories=flexmock(),
- )
- with pytest.raises(ValueError):
- module.run_repo_create(
- repository={'path': 'repo'},
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
- def test_run_repo_create_bails_if_repository_does_not_match():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(
- False
- )
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository').never()
- arguments = flexmock(
- encryption_mode=flexmock(),
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=flexmock(),
- storage_quota=flexmock(),
- make_parent_directories=flexmock(),
- )
- module.run_repo_create(
- repository={'path': 'repo'},
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
- def test_run_repo_create_favors_flags_over_config():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository').with_args(
- object,
- object,
- object,
- object,
- object,
- object,
- object,
- object,
- append_only=False,
- storage_quota=0,
- make_parent_directories=False,
- local_path=object,
- remote_path=object,
- ).once()
- arguments = flexmock(
- encryption_mode=flexmock(),
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=False,
- storage_quota=0,
- make_parent_directories=False,
- )
- module.run_repo_create(
- repository={
- 'path': 'repo',
- 'append_only': True,
- 'storage_quota': '10G',
- 'make_parent_directories': True,
- },
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
- def test_run_repo_create_defaults_to_config():
- flexmock(module.logger).answer = lambda message: None
- flexmock(module.borgmatic.config.validate).should_receive('repositories_match').and_return(True)
- flexmock(module.borgmatic.borg.repo_create).should_receive('create_repository').with_args(
- object,
- object,
- object,
- object,
- object,
- object,
- object,
- object,
- append_only=True,
- storage_quota='10G',
- make_parent_directories=True,
- local_path=object,
- remote_path=object,
- ).once()
- arguments = flexmock(
- encryption_mode=flexmock(),
- source_repository=flexmock(),
- repository=flexmock(),
- copy_crypt_key=flexmock(),
- append_only=None,
- storage_quota=None,
- make_parent_directories=None,
- )
- module.run_repo_create(
- repository={
- 'path': 'repo',
- 'append_only': True,
- 'storage_quota': '10G',
- 'make_parent_directories': True,
- },
- config={},
- local_borg_version=None,
- repo_create_arguments=arguments,
- global_arguments=flexmock(dry_run=False),
- local_path=None,
- remote_path=None,
- )
|