From c83675ae7dc1b720b529b19297e7cfffa8515310 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 16 Oct 2025 08:14:25 +0200 Subject: [PATCH] feat: update rougail-structural-bitwarden --- pyproject.toml | 2 +- .../errors/bitwarden.json | 4 -- .../errors/bitwarden_env.json | 4 -- .../makedict/bitwarden.json | 4 -- .../makedict/bitwarden_env.json | 4 -- .../makedict/bitwarden.json | 2 +- .../makedict/bitwarden.json | 2 +- .../makedict/bitwarden.json | 8 ++-- .../errors/bitwarden.json | 6 +++ .../makedict/bitwarden.json | 4 ++ .../9_unknown_type/makedict/bitwarden.json | 3 -- .../2_username_secret_hidden/00-base.yml | 23 ----------- .../00-base.yml | 41 +++++++++++++++++++ tests/test_load.py | 30 ++++---------- 14 files changed, 66 insertions(+), 71 deletions(-) delete mode 100644 tests/results/2_username_secret_hidden/errors/bitwarden.json delete mode 100644 tests/results/2_username_secret_hidden/errors/bitwarden_env.json delete mode 100644 tests/results/2_username_secret_hidden/makedict/bitwarden.json delete mode 100644 tests/results/2_username_secret_hidden/makedict/bitwarden_env.json create mode 100644 tests/results/5_secret_calc_other_user_data3/errors/bitwarden.json create mode 100644 tests/results/5_secret_calc_other_user_data3/makedict/bitwarden.json delete mode 100644 tests/results/9_unknown_type/makedict/bitwarden.json delete mode 100644 tests/structures/2_username_secret_hidden/00-base.yml create mode 100644 tests/structures/5_secret_calc_other_user_data3/00-base.yml diff --git a/pyproject.toml b/pyproject.toml index dda9504..5185521 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ ] dependencies = [ "rougail >= 1.1,<2", - "rougail-structural-bitwarden == 0.1.0a5", + "rougail-structural-bitwarden == 0.1.0a6", ] [project.urls] diff --git a/tests/results/2_username_secret_hidden/errors/bitwarden.json b/tests/results/2_username_secret_hidden/errors/bitwarden.json deleted file mode 100644 index 217db0a..0000000 --- a/tests/results/2_username_secret_hidden/errors/bitwarden.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "errors": [], - "warnings": [] -} \ No newline at end of file diff --git a/tests/results/2_username_secret_hidden/errors/bitwarden_env.json b/tests/results/2_username_secret_hidden/errors/bitwarden_env.json deleted file mode 100644 index 217db0a..0000000 --- a/tests/results/2_username_secret_hidden/errors/bitwarden_env.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "errors": [], - "warnings": [] -} \ No newline at end of file diff --git a/tests/results/2_username_secret_hidden/makedict/bitwarden.json b/tests/results/2_username_secret_hidden/makedict/bitwarden.json deleted file mode 100644 index dd5d89d..0000000 --- a/tests/results/2_username_secret_hidden/makedict/bitwarden.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rougail.username": "bitwarden_username", - "rougail.secret": "bitwarden_password" -} \ No newline at end of file diff --git a/tests/results/2_username_secret_hidden/makedict/bitwarden_env.json b/tests/results/2_username_secret_hidden/makedict/bitwarden_env.json deleted file mode 100644 index 44799da..0000000 --- a/tests/results/2_username_secret_hidden/makedict/bitwarden_env.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "rougail.username": "example_login", - "rougail.secret": "Ex4mpL3_P4ssw0rD" -} \ No newline at end of file diff --git a/tests/results/2_username_secret_invalid/makedict/bitwarden.json b/tests/results/2_username_secret_invalid/makedict/bitwarden.json index cceb2bd..326be9b 100644 --- a/tests/results/2_username_secret_invalid/makedict/bitwarden.json +++ b/tests/results/2_username_secret_invalid/makedict/bitwarden.json @@ -1,4 +1,4 @@ { "rougail.username": "up_secret_error_1", "rougail.secret": "up_secret_error_pass_1" -} +} \ No newline at end of file diff --git a/tests/results/3_leadership_secret_several/makedict/bitwarden.json b/tests/results/3_leadership_secret_several/makedict/bitwarden.json index eec5a28..3a72ff2 100644 --- a/tests/results/3_leadership_secret_several/makedict/bitwarden.json +++ b/tests/results/3_leadership_secret_several/makedict/bitwarden.json @@ -9,4 +9,4 @@ "rougail.leader.secret": "bitwarden_password_2" } ] -} +} \ No newline at end of file diff --git a/tests/results/5_secret_calc_other_user_data/makedict/bitwarden.json b/tests/results/5_secret_calc_other_user_data/makedict/bitwarden.json index 3c7a663..53cc0c8 100644 --- a/tests/results/5_secret_calc_other_user_data/makedict/bitwarden.json +++ b/tests/results/5_secret_calc_other_user_data/makedict/bitwarden.json @@ -3,8 +3,10 @@ "rougail.project": "5_secret_calc", "rougail.environment": "environment", "rougail.service": "service", - "rougail.modified_variable": ["user_1", "user_2"], + "rougail.modified_variable": [ + "user_1", + "user_2" + ], "rougail.dyn_user_1.secret": "bitwarden_password", "rougail.dyn_user_2.secret": "bitwarden_password_2" - -} +} \ No newline at end of file diff --git a/tests/results/5_secret_calc_other_user_data3/errors/bitwarden.json b/tests/results/5_secret_calc_other_user_data3/errors/bitwarden.json new file mode 100644 index 0000000..d2082d6 --- /dev/null +++ b/tests/results/5_secret_calc_other_user_data3/errors/bitwarden.json @@ -0,0 +1,6 @@ +{ + "errors": [], + "warnings": [ + "variable or family \"rougail.modified_variable\" does not exist, it will be ignored when loading from By Hand" + ] +} \ No newline at end of file diff --git a/tests/results/5_secret_calc_other_user_data3/makedict/bitwarden.json b/tests/results/5_secret_calc_other_user_data3/makedict/bitwarden.json new file mode 100644 index 0000000..eaf33a5 --- /dev/null +++ b/tests/results/5_secret_calc_other_user_data3/makedict/bitwarden.json @@ -0,0 +1,4 @@ +{ + "rougail.modified_variable_single": "user_2", + "rougail.secret": "bitwarden_password_2" +} \ No newline at end of file diff --git a/tests/results/9_unknown_type/makedict/bitwarden.json b/tests/results/9_unknown_type/makedict/bitwarden.json deleted file mode 100644 index 4f1aa2e..0000000 --- a/tests/results/9_unknown_type/makedict/bitwarden.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "rougail.secret.bitwarden": true -} \ No newline at end of file diff --git a/tests/structures/2_username_secret_hidden/00-base.yml b/tests/structures/2_username_secret_hidden/00-base.yml deleted file mode 100644 index f926555..0000000 --- a/tests/structures/2_username_secret_hidden/00-base.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -version: 1.1 - -username: - description: the username - type: unix_user - secret_manager: - host: test - project: 2_username_secret_hidden - environment: environment - service: service - user: user - -secret: - description: the secret - type: secret - hidden: true - secret_manager: - host: test - project: 2_username_secret_hidden - environment: environment - service: service - user: user diff --git a/tests/structures/5_secret_calc_other_user_data3/00-base.yml b/tests/structures/5_secret_calc_other_user_data3/00-base.yml new file mode 100644 index 0000000..ba86b73 --- /dev/null +++ b/tests/structures/5_secret_calc_other_user_data3/00-base.yml @@ -0,0 +1,41 @@ +%YAML 1.2 +--- +version: 1.1 + +host: + description: hostname + default: test + hidden: true + +project: + description: the project + default: 5_secret_calc + hidden: true + +environment: + description: the environment + default: environment + hidden: true + +service: + description: the service + default: service + hidden: true + +modified_variable_single: # a variable modified + +secret: + description: the second secret + type: secret + secret_manager: + host: + variable: _.host + project: + variable: _.project + environment: + variable: _.environment + service: + variable: _.service + user: + variable: _.modified_variable_single +... diff --git a/tests/test_load.py b/tests/test_load.py index 0466af1..c6ff119 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -24,13 +24,14 @@ def _test_structural_files(test_dir, command, *, env=False, modified=False): rougailconfig['bitwarden.command'] = command rougail = Rougail(rougailconfig) config = rougail.run() + config.property.read_write() # loads variables in the tiramisu config generated_user_data = RougailUserData(config, rougailconfig=rougailconfig).run() if modified: generated_user_data.insert(0, {'source': 'By Hand', 'errors': [], 'warnings': [], 'values': {'rougail.modified_variable': ['user_1', 'user_2'], 'rougail.modified_variable_single': 'user_2'}}) errors = rougail.user_datas(generated_user_data) #expected output - config_dict = dict(config_to_dict(config.forcepermissive.value.get())) + config_dict = dict(config_to_dict(config.value.get())) if not env: base_filename = 'bitwarden.json' else: @@ -108,16 +109,6 @@ def test_structural_files_2_username_secret_invalid_bw(): _test_structural_files(test_dir / '2_username_secret_invalid', 'bw') -def test_structural_files_2_username_secret_hidden_rbw(): - "tests the output" - _test_structural_files(test_dir / '2_username_secret_hidden', 'rbw') - - -def test_structural_files_2_username_secret_hidden_bw(): - "tests the output" - _test_structural_files(test_dir / '2_username_secret_hidden', 'bw') - - def test_structural_files_3_leadership_secret_rbw(): "tests the output" _test_structural_files(test_dir / '3_leadership_secret', 'rbw') @@ -178,6 +169,11 @@ def test_structural_files_5_secret_calc_other_user_data2_rbw(): _test_structural_files(test_dir / '5_secret_calc_other_user_data2', 'rbw', modified=True) +def test_structural_files_5_secret_calc_other_user_data3_rbw(): + "tests the output" + _test_structural_files(test_dir / '5_secret_calc_other_user_data3', 'rbw', modified=True) + + def test_structural_files_6_no_username_rbw(): "tests the output" _test_structural_files(test_dir / '6_no_username', 'rbw') @@ -276,18 +272,6 @@ def test_structural_files_env_2_username_secret_invalid_bw(): _test_structural_files(test_dir / '2_username_secret_invalid', 'bw', env=True) -def test_structural_files_env_2_username_secret_hidden_rbw(): - "tests the output" - with mock.patch.dict(os.environ, {'ROUGAIL_BITWARDEN_MOCK_ENABLE': '1'}): - _test_structural_files(test_dir / '2_username_secret_hidden', 'rbw', env=True) - - -def test_structural_files_env_2_username_secret_hidden_bw(): - "tests the output" - with mock.patch.dict(os.environ, {'ROUGAIL_BITWARDEN_MOCK_ENABLE': '1'}): - _test_structural_files(test_dir / '2_username_secret_hidden', 'bw', env=True) - - def test_structural_files_env_3_leadership_secret_rbw(): "tests the output" with mock.patch.dict(os.environ, {'ROUGAIL_BITWARDEN_MOCK_ENABLE': '1'}):