aboutsummaryrefslogtreecommitdiff
path: root/tests/test_merge_config.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_config.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_config.py')
-rw-r--r--tests/test_merge_config.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/test_merge_config.py b/tests/test_merge_config.py
index d64b2ae6b..de2c98281 100644
--- a/tests/test_merge_config.py
+++ b/tests/test_merge_config.py
@@ -15,8 +15,12 @@
from importlib.machinery import SourceFileLoader
import os
+import tempfile
from io import StringIO
+
+from ansible.parsing.dataloader import DataLoader
+from ansible.template import Templar
from oslotest import base
@@ -211,3 +215,40 @@ class OverrideConfigParserTest(base.BaseTestCase):
parser.write(output)
self.assertEqual(TESTC_NO_WHITESPACE, output.getvalue())
output.close()
+
+ 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 line gets
+ # parsed as a continuation of the previous key's value instead of
+ # a new key.
+ content = (
+ "[DEFAULT]\n"
+ "key1 = value1\n"
+ " {% if true %}\n"
+ "key2 = value2\n"
+ " {% endif %}\n"
+ "key3 = value3\n"
+ )
+ with tempfile.TemporaryDirectory() as tmpdir:
+ source = os.path.join(tmpdir, 'source.conf')
+ with open(source, 'w') as f:
+ f.write(content)
+
+ loader = DataLoader()
+ loader.set_basedir(tmpdir)
+ action = object.__new__(merge_configs.ActionModule)
+ action._loader = loader
+ action._templar = Templar(loader=loader)
+
+ config = merge_configs.OverrideConfigParser()
+ action.read_config(source, config)
+
+ output = StringIO()
+ config.write(output)
+ self.assertEqual(
+ "[DEFAULT]\n"
+ "key1 = value1\n"
+ "key2 = value2\n"
+ "key3 = value3\n\n",
+ output.getvalue())
+ output.close()