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

* Do not strip new lines in native jinja

* Add changelog/fragment
This commit is contained in:
Martin Krizek 2018-10-19 00:14:43 +02:00 committed by GitHub
parent 4d9504e775
commit 541255a2d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 36 additions and 5 deletions

View file

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

View file

@ -621,10 +621,7 @@ class Templar:
# For preserving the number of input newlines in the output (used
# later in this method)
if not USE_JINJA2_NATIVE:
data_newlines = _count_newlines_from_end(data)
else:
data_newlines = None
data_newlines = _count_newlines_from_end(data)
if fail_on_undefined is None:
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))
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
if preserve_trailing_newlines:

View file

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

View file

@ -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

View file

@ -0,0 +1,4 @@
First line.