Do not strip new lines in native jinja (#46751)

* Do not strip new lines in native jinja

* Add changelog/fragment
pull/47397/head
Martin Krizek 6 years ago committed by GitHub
parent 4d9504e775
commit 541255a2d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,2 @@
bugfixes:
- templar - Do not strip new lines in native jinja - https://github.com/ansible/ansible/issues/46743

@ -621,10 +621,7 @@ class Templar:
# For preserving the number of input newlines in the output (used # For preserving the number of input newlines in the output (used
# later in this method) # later in this method)
if not USE_JINJA2_NATIVE:
data_newlines = _count_newlines_from_end(data) data_newlines = _count_newlines_from_end(data)
else:
data_newlines = None
if fail_on_undefined is None: if fail_on_undefined is None:
fail_on_undefined = self._fail_on_undefined_errors fail_on_undefined = self._fail_on_undefined_errors
@ -690,7 +687,7 @@ class Templar:
display.debug("failing because of a type error, template data is: %s" % to_native(data)) display.debug("failing because of a type error, template data is: %s" % to_native(data))
raise AnsibleError("Unexpected templating type error occurred on (%s): %s" % (to_native(data), to_native(te))) raise AnsibleError("Unexpected templating type error occurred on (%s): %s" % (to_native(data), to_native(te)))
if USE_JINJA2_NATIVE: if USE_JINJA2_NATIVE and not isinstance(res, string_types):
return res return res
if preserve_trailing_newlines: if preserve_trailing_newlines:

@ -46,4 +46,5 @@
- import_tasks: test_dunder.yml - import_tasks: test_dunder.yml
- import_tasks: test_types.yml - import_tasks: test_types.yml
- import_tasks: test_none.yml - import_tasks: test_none.yml
- import_tasks: test_template.yml
when: is_native when: is_native

@ -0,0 +1,27 @@
- block:
- name: Template file with newlines
template:
src: test_template_newlines.j2
dest: test_template_newlines.res
- name: Dump template file
stat:
path: test_template_newlines.j2
get_checksum: yes
register: template_stat
- name: Dump result file
stat:
path: test_template_newlines.res
get_checksum: yes
register: result_stat
- name: Check that number of newlines from original template are preserved
assert:
that:
- template_stat.stat.checksum == result_stat.stat.checksum
always:
- name: Clean up
file:
path: test_template_newlines.res
state: absent
Loading…
Cancel
Save