aboutsummaryrefslogtreecommitdiff
path: root/tests/test_merge_yaml.py
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2026-08-21 08:22:06 +0200
committerBartosz Bezak <bartosz@stackhpc.com>2026-08-24 10:12:58 +0000
commite3aa050a57e53c17d15aad0273fae397f4a690b8 (patch)
tree21b8cb9a822ac095cefa7727461056b3b668fd8e /tests/test_merge_yaml.py
parent762181ae4918e3e261df06ed983a1ef1cb61b10c (diff)
downloadkolla-ansible-e3aa050a57e53c17d15aad0273fae397f4a690b8.tar.gz
kolla-ansible-e3aa050a57e53c17d15aad0273fae397f4a690b8.zip
merge_configs: Add lstrip_blocks
Closes-Bug: #2164718 Change-Id: If5b7f30d2467b61c3578d09992faf446b5d25f4e Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com> (cherry picked from commit 0f4da209da6fa39739ffc7b7fb1a69dc967734b7)
Diffstat (limited to 'tests/test_merge_yaml.py')
-rw-r--r--tests/test_merge_yaml.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/test_merge_yaml.py b/tests/test_merge_yaml.py
index d6b74ae77..35de91d2c 100644
--- a/tests/test_merge_yaml.py
+++ b/tests/test_merge_yaml.py
@@ -15,8 +15,11 @@
from importlib.machinery import SourceFileLoader
import os
+import tempfile
from ansible.errors import AnsibleModuleError
+from ansible.parsing.dataloader import DataLoader
+from ansible.template import Templar
from oslotest import base
PROJECT_DIR = os.path.abspath(os.path.join(os. path.dirname(__file__), '../'))
@@ -174,3 +177,32 @@ class MergeYamlConfigTest(base.BaseTestCase):
with self.assertRaisesRegex(AnsibleModuleError, "Failure merging key"):
merge_yaml.Utils.update_nested_conf(
initial_conf, extension, extend_lists=True)
+
+ def test_read_config_lstrip_blocks(self):
+ # An indented Jinja2 block tag on its own line must not leak its
+ # leading whitespace into the following line, or the resulting
+ # YAML indentation becomes inconsistent with its siblings.
+ content = (
+ "foo:\n"
+ " bar: baz\n"
+ " {% if true %}\n"
+ " extra: value\n"
+ " {% endif %}\n"
+ " qux: quux\n"
+ )
+ with tempfile.TemporaryDirectory() as tmpdir:
+ source = os.path.join(tmpdir, 'source.yml')
+ with open(source, 'w') as f:
+ f.write(content)
+
+ loader = DataLoader()
+ loader.set_basedir(tmpdir)
+ action = object.__new__(merge_yaml.ActionModule)
+ action._loader = loader
+ action._templar = Templar(loader=loader)
+
+ result = action.read_config(source)
+
+ self.assertEqual(
+ {'foo': {'bar': 'baz', 'extra': 'value', 'qux': 'quux'}},
+ result)