fix: make check repositories work with dict and str repositories (#662).

Merge pull request #63 from diivi/fix/check-repositories-by-label
This commit is contained in:
Dan Helfman 2023-03-28 11:15:01 -07:00 committed by GitHub
commit 9d71bf916e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 3 deletions

View file

@ -69,7 +69,10 @@ def apply_logical_validation(config_filename, parsed_configuration):
location_repositories = parsed_configuration.get('location', {}).get('repositories') location_repositories = parsed_configuration.get('location', {}).get('repositories')
check_repositories = parsed_configuration.get('consistency', {}).get('check_repositories', []) check_repositories = parsed_configuration.get('consistency', {}).get('check_repositories', [])
for repository in check_repositories: for repository in check_repositories:
if repository not in location_repositories: if not any(
repositories_match(repository, config_repository)
for config_repository in location_repositories
):
raise Validation_error( raise Validation_error(
config_filename, config_filename,
( (

View file

@ -51,17 +51,33 @@ def test_apply_locical_validation_raises_if_unknown_repository_in_check_reposito
) )
def test_apply_locical_validation_does_not_raise_if_known_repository_in_check_repositories(): def test_apply_locical_validation_does_not_raise_if_known_repository_path_in_check_repositories():
module.apply_logical_validation( module.apply_logical_validation(
'config.yaml', 'config.yaml',
{ {
'location': {'repositories': ['repo.borg', 'other.borg']}, 'location': {'repositories': [{'path': 'repo.borg'}, {'path': 'other.borg'}]},
'retention': {'keep_secondly': 1000}, 'retention': {'keep_secondly': 1000},
'consistency': {'check_repositories': ['repo.borg']}, 'consistency': {'check_repositories': ['repo.borg']},
}, },
) )
def test_apply_locical_validation_does_not_raise_if_known_repository_label_in_check_repositories():
module.apply_logical_validation(
'config.yaml',
{
'location': {
'repositories': [
{'path': 'repo.borg', 'label': 'my_repo'},
{'path': 'other.borg', 'label': 'other_repo'},
]
},
'retention': {'keep_secondly': 1000},
'consistency': {'check_repositories': ['my_repo']},
},
)
def test_apply_logical_validation_does_not_raise_if_archive_name_format_and_prefix_present(): def test_apply_logical_validation_does_not_raise_if_archive_name_format_and_prefix_present():
module.apply_logical_validation( module.apply_logical_validation(
'config.yaml', 'config.yaml',