diff --git a/src/rougail/user_data_bitwarden/data.py b/src/rougail/user_data_bitwarden/data.py index 8176cba..6fc518c 100644 --- a/src/rougail/user_data_bitwarden/data.py +++ b/src/rougail/user_data_bitwarden/data.py @@ -223,7 +223,7 @@ def set_password(cache, command, *, option): return [ get_value(key, type_, d) for d in data ] - elif len(data) != 1: + if len(data) != 1: raise ConfigError( _( 'several items found with name "{0}" in Bitwarden: "{1}"' diff --git a/tests/results/3_leadership_len_1/errors/bitwarden.json b/tests/results/3_leadership_len_1/errors/bitwarden.json new file mode 100644 index 0000000..217db0a --- /dev/null +++ b/tests/results/3_leadership_len_1/errors/bitwarden.json @@ -0,0 +1,4 @@ +{ + "errors": [], + "warnings": [] +} \ No newline at end of file diff --git a/tests/results/3_leadership_len_1/makedict/bitwarden.json b/tests/results/3_leadership_len_1/makedict/bitwarden.json new file mode 100644 index 0000000..7760ee5 --- /dev/null +++ b/tests/results/3_leadership_len_1/makedict/bitwarden.json @@ -0,0 +1,8 @@ +{ + "rougail.leader.username": [ + { + "rougail.leader.username": "bitwarden_username", + "rougail.leader.secret": "bitwarden_password" + } + ] +} \ No newline at end of file diff --git a/tests/results/3_leadership_unknown/errors/bitwarden.json b/tests/results/3_leadership_unknown/errors/bitwarden.json new file mode 100644 index 0000000..1778963 --- /dev/null +++ b/tests/results/3_leadership_unknown/errors/bitwarden.json @@ -0,0 +1,40 @@ +{ + "errors": [], + "warnings": [ + [ + [ + "item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\", it will be ignored", + "rougail.leader.username", + null + ] + ], + [ + [ + "item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\", it will be ignored", + "rougail.leader.username", + null + ] + ], + [ + [ + "item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\", it will be ignored when loading from Bitwarden", + "rougail.leader.secret", + null + ] + ], + [ + [ + "item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\", it will be ignored when loading from Bitwarden", + "rougail.leader.secret", + null + ] + ], + [ + [ + "item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\", it will be ignored when loading from Bitwarden", + "rougail.leader.secret", + null + ] + ] + ] +} \ No newline at end of file diff --git a/tests/results/3_leadership_unknown/makedict/bitwarden.json b/tests/results/3_leadership_unknown/makedict/bitwarden.json new file mode 100644 index 0000000..0860f8a --- /dev/null +++ b/tests/results/3_leadership_unknown/makedict/bitwarden.json @@ -0,0 +1 @@ +"item \"3_leadership_secret - environment - service - unknown\" in Bitwarden is not found\"" \ No newline at end of file diff --git a/tests/structures/3_leadership_len_1/00-base.yml b/tests/structures/3_leadership_len_1/00-base.yml new file mode 100644 index 0000000..f98e4df --- /dev/null +++ b/tests/structures/3_leadership_len_1/00-base.yml @@ -0,0 +1,25 @@ +--- +version: 1.1 + +leader: + type: leadership + + username: + description: the username + type: unix_user + secret_manager: + host: test + project: 3_leadership_secret + environment: environment + service: service + user: user_1 + + secret: + description: the secret + type: secret + secret_manager: + host: test + project: 3_leadership_secret + environment: environment + service: service + user: user_1 diff --git a/tests/structures/3_leadership_unknown/00-base.yml b/tests/structures/3_leadership_unknown/00-base.yml new file mode 100644 index 0000000..45b27b8 --- /dev/null +++ b/tests/structures/3_leadership_unknown/00-base.yml @@ -0,0 +1,25 @@ +--- +version: 1.1 + +leader: + type: leadership + + username: + description: the username + type: unix_user + secret_manager: + host: test + project: 3_leadership_secret + environment: environment + service: service + user: unknown + + secret: + description: the secret + type: secret + secret_manager: + host: test + project: 3_leadership_secret + environment: environment + service: service + user: unknown diff --git a/tests/test_load.py b/tests/test_load.py index ad34040..d40071a 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -57,7 +57,7 @@ def _test_structural_files(test_dir, command, *, env=False, modified=False, mock for l, data in errors.items(): for i, d in enumerate(data): if isinstance(d, dict): - data[i] = list(d) + data[i] = [[l, v.path, v.index] for l, v in d.items()] if not errors_file.is_file(): errors_file.parent.mkdir(parents=True, exist_ok=True) with open(errors_file, 'a') as json_file: @@ -129,6 +129,26 @@ def test_structural_files_3_leadership_secret_bw(): _test_structural_files(test_dir / '3_leadership_secret', 'bw') +def test_structural_files_3_leadership_len_1_rbw(): + "tests the output" + _test_structural_files(test_dir / '3_leadership_len_1', 'rbw') + + +def test_structural_files_3_leadership_len_1_bw(): + "tests the output" + _test_structural_files(test_dir / '3_leadership_len_1', 'bw') + + +def test_structural_files_3_leadership_unknown_rbw(): + "tests the output" + _test_structural_files(test_dir / '3_leadership_unknown', 'rbw') + + +def test_structural_files_3_leadership_unknown_bw(): + "tests the output" + _test_structural_files(test_dir / '3_leadership_unknown', 'bw') + + def test_structural_files_3_leadership_secret_several_rbw(): "tests the output" _test_structural_files(test_dir / '3_leadership_secret_several', 'rbw')