summaryrefslogtreecommitdiff
path: root/test/integration/targets
diff options
context:
space:
mode:
authorMartin Krizek <martin.krizek@gmail.com>2023-05-04 14:55:27 +0200
committerGitHub <noreply@github.com>2023-05-04 14:55:27 +0200
commit8cd95a8e664ccd634dc3a95642ef7ad41f007169 (patch)
tree0862adc2e77c4078a3c1e535de0725c6a775ac35 /test/integration/targets
parent7eada15d1e9470e010f1c13b52450b01d8e46930 (diff)
downloadansible-8cd95a8e664ccd634dc3a95642ef7ad41f007169.tar.gz
Account for overlays when interacting with Jinja envs (#80705)
Instead of using Templar.environment in Templar.do_template for accessing/mutating the environment, myenv local variable should be used because it is the environment used for actual templating. It can either point to Templar.environment or newly created environment overlay. Fixes #80605
Diffstat (limited to 'test/integration/targets')
-rw-r--r--test/integration/targets/template_jinja2_non_native/macro_override.yml15
-rwxr-xr-xtest/integration/targets/template_jinja2_non_native/runme.sh2
-rw-r--r--test/integration/targets/template_jinja2_non_native/templates/macro_override.j27
3 files changed, 24 insertions, 0 deletions
diff --git a/test/integration/targets/template_jinja2_non_native/macro_override.yml b/test/integration/targets/template_jinja2_non_native/macro_override.yml
new file mode 100644
index 0000000000..8a1cabd26e
--- /dev/null
+++ b/test/integration/targets/template_jinja2_non_native/macro_override.yml
@@ -0,0 +1,15 @@
+- hosts: localhost
+ gather_facts: false
+ vars:
+ output_dir: "{{ lookup('env', 'OUTPUT_DIR') }}"
+ tasks:
+ - template:
+ src: macro_override.j2
+ dest: "{{ output_dir }}/macro_override.out"
+
+ - assert:
+ that:
+ - "'foobar' not in data"
+ - "'\"foo\" \"bar\"' in data"
+ vars:
+ data: "{{ lookup('file', '{{ output_dir }}/macro_override.out') }}"
diff --git a/test/integration/targets/template_jinja2_non_native/runme.sh b/test/integration/targets/template_jinja2_non_native/runme.sh
index fe9d495a3e..c02d6b33cf 100755
--- a/test/integration/targets/template_jinja2_non_native/runme.sh
+++ b/test/integration/targets/template_jinja2_non_native/runme.sh
@@ -4,4 +4,6 @@ set -eux
export ANSIBLE_JINJA2_NATIVE=1
ansible-playbook 46169.yml -v "$@"
+python -m pip install "Jinja2>=3.1.0"
+ansible-playbook macro_override.yml -v "$@"
unset ANSIBLE_JINJA2_NATIVE
diff --git a/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2 b/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2
new file mode 100644
index 0000000000..51908da0cd
--- /dev/null
+++ b/test/integration/targets/template_jinja2_non_native/templates/macro_override.j2
@@ -0,0 +1,7 @@
+#jinja2: variable_start_string:'<<',variable_end_string:'>>'
+Use a jinja2 override to trigger creating and using an environment overlay.
+
+{% macro m() %}
+"foo" "bar"
+{% endmacro %}
+<< m() >>