From 9c55b5aa25557a907e7323e5ecc36fd969967d28 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 10 Feb 2025 09:46:31 +0100 Subject: [PATCH] feat: output return status too --- src/rougail/output_formatter/__init__.py | 8 ++++--- src/rougail/output_formatter/config.py | 2 +- src/rougail/output_formatter/upgrade.py | 2 +- tests/results/00_6secret/rougail/00-base.yml | 11 +++++++++ .../rougail/00-base.yml | 24 +++++++++++++++++++ .../rougail/00-base.yml | 10 ++++++++ .../rougail/00-base.yml | 22 +++++++++++++++++ .../rougail/00-base.yml | 22 +++++++++++++++++ .../rougail/00-base.yml | 21 ++++++++++++++++ .../rougail/00-base.yml | 20 ++++++++++++++++ .../rougail/00-base.yml | 20 ++++++++++++++++ .../rougail/00-base.yml | 19 +++++++++++++++ tests/test_load.py | 2 +- 13 files changed, 177 insertions(+), 6 deletions(-) create mode 100644 tests/results/00_6secret/rougail/00-base.yml create mode 100644 tests/results/04_5disabled_calculation_multi/rougail/00-base.yml create mode 100644 tests/results/04_5disabled_calculation_variable_multi/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-follower-first/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-follower-last/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-follower/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-leader-first/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-leader-last/rougail/00-base.yml create mode 100644 tests/results/40_9leadership-calculation-outside-leader/rougail/00-base.yml diff --git a/src/rougail/output_formatter/__init__.py b/src/rougail/output_formatter/__init__.py index 2112c2f..c284a22 100644 --- a/src/rougail/output_formatter/__init__.py +++ b/src/rougail/output_formatter/__init__.py @@ -1,6 +1,6 @@ """ Silique (https://www.silique.fr) -Copyright (C) 2024 +Copyright (C) 2024-2025 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the @@ -107,10 +107,12 @@ class RougailOutputFormatter: with BytesIO() as ymlfh: self.yaml.dump(self.families[None], ymlfh) ret = ymlfh.getvalue().decode("utf-8").strip() + '\n' - return ret + return True, ret def print(self): - print(self.run()) + ret, data = self.run() + print(data) + return ret def parse(self): # FIXME path to relative ! diff --git a/src/rougail/output_formatter/config.py b/src/rougail/output_formatter/config.py index 0178880..725017d 100644 --- a/src/rougail/output_formatter/config.py +++ b/src/rougail/output_formatter/config.py @@ -1,6 +1,6 @@ """ Silique (https://www.silique.fr) -Copyright (C) 2024 +Copyright (C) 2024-2025 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the diff --git a/src/rougail/output_formatter/upgrade.py b/src/rougail/output_formatter/upgrade.py index 530ee6e..f44c9f0 100644 --- a/src/rougail/output_formatter/upgrade.py +++ b/src/rougail/output_formatter/upgrade.py @@ -4,7 +4,7 @@ Cadoles (http://www.cadoles.com) Copyright (C) 2021 Silique (https://www.silique.fr) -Copyright (C) 2022-2024 +Copyright (C) 2022-2025 This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the diff --git a/tests/results/00_6secret/rougail/00-base.yml b/tests/results/00_6secret/rougail/00-base.yml new file mode 100644 index 0000000..32dd82b --- /dev/null +++ b/tests/results/00_6secret/rougail/00-base.yml @@ -0,0 +1,11 @@ +--- +version: 1.1 + +secret1: + description: the first variable + type: secret + +secret2: + description: the second variable + type: secret + default: value diff --git a/tests/results/04_5disabled_calculation_multi/rougail/00-base.yml b/tests/results/04_5disabled_calculation_multi/rougail/00-base.yml new file mode 100644 index 0000000..3f001ac --- /dev/null +++ b/tests/results/04_5disabled_calculation_multi/rougail/00-base.yml @@ -0,0 +1,24 @@ +--- +version: 1.1 + +condition: no # a conditional variable + +variable1: + description: a first variable + multi: true + disabled: + jinja: |- + {% if _.condition == "yes" %} + condition is yes + {% endif %} + description: if condition is egal to "yes" + +variable2: + description: a second variable + multi: true + disabled: + jinja: |- + {% if _.condition == "yes" %} + condition is yes + {% endif %} + description: if condition is egal to "yes" diff --git a/tests/results/04_5disabled_calculation_variable_multi/rougail/00-base.yml b/tests/results/04_5disabled_calculation_variable_multi/rougail/00-base.yml new file mode 100644 index 0000000..fde0c53 --- /dev/null +++ b/tests/results/04_5disabled_calculation_variable_multi/rougail/00-base.yml @@ -0,0 +1,10 @@ +--- +version: 1.1 + +condition: false # a condition + +variable: + description: a variable + multi: true + disabled: + variable: _.condition diff --git a/tests/results/40_9leadership-calculation-outside-follower-first/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-follower-first/rougail/00-base.yml new file mode 100644 index 0000000..0fe6650 --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-follower-first/rougail/00-base.yml @@ -0,0 +1,22 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + multi: true + default: + jinja: |- + {{ _.leader.follower1[0] }} + unique: false diff --git a/tests/results/40_9leadership-calculation-outside-follower-last/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-follower-last/rougail/00-base.yml new file mode 100644 index 0000000..d3290bd --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-follower-last/rougail/00-base.yml @@ -0,0 +1,22 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + multi: true + default: + jinja: |- + {{ _.leader.follower1[-1] }} + unique: false diff --git a/tests/results/40_9leadership-calculation-outside-follower/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-follower/rougail/00-base.yml new file mode 100644 index 0000000..f08f1fa --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-follower/rougail/00-base.yml @@ -0,0 +1,21 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + multi: true + default: + variable: _.leader.follower1 + unique: false diff --git a/tests/results/40_9leadership-calculation-outside-leader-first/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-leader-first/rougail/00-base.yml new file mode 100644 index 0000000..6d4590f --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-leader-first/rougail/00-base.yml @@ -0,0 +1,20 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + default: + jinja: >- + {{ _.leader.leader[0] }} diff --git a/tests/results/40_9leadership-calculation-outside-leader-last/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-leader-last/rougail/00-base.yml new file mode 100644 index 0000000..64fa5cb --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-leader-last/rougail/00-base.yml @@ -0,0 +1,20 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + default: + jinja: >- + {{ _.leader.leader[-1] }} diff --git a/tests/results/40_9leadership-calculation-outside-leader/rougail/00-base.yml b/tests/results/40_9leadership-calculation-outside-leader/rougail/00-base.yml new file mode 100644 index 0000000..a079fc2 --- /dev/null +++ b/tests/results/40_9leadership-calculation-outside-leader/rougail/00-base.yml @@ -0,0 +1,19 @@ +--- +version: 1.1 + +leader: + description: a leadership + type: leadership + + leader: # a leader + - value1 + - value2 + + follower1: val11 # a follower + + follower2: val21 # an other follower + +calculate: + description: a calculated variable + default: + variable: _.leader.leader diff --git a/tests/test_load.py b/tests/test_load.py index e5996ea..7591e4c 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -32,7 +32,7 @@ def _test_structural_files(file_name, namespace, rougailconfig): rougailconfig['step.output'] = 'formatter' ################################## config = None - generated_output = RougailOutput(config, rougailconfig=rougailconfig).run() + generated_output = RougailOutput(config, rougailconfig=rougailconfig).run()[1] output_file = get_output_director(namespace) / file_name.parent.parent.name / file_name.parent.name / file_name.name if not output_file.is_file(): if not output_file.parent.is_dir():