When using ANSIBLE_JINJA2_NATIVE bypass our None filtering in _finalze (#41408)

* When using ANSIBLE_JINJA2_NATIVE bypass our None filtering in _finalize. Fixes #41392

* Add tests for _finalize bypass

* Address python3 failures in tests
This commit is contained in:
Matt Martz 2018-06-12 08:46:23 -05:00 committed by GitHub
commit ad0827e5c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 8 deletions

View file

@ -609,8 +609,13 @@ class Templar:
def _finalize(self, thing):
'''
A custom finalize method for jinja2, which prevents None from being returned
A custom finalize method for jinja2, which prevents None from being returned. This
avoids a string of ``"None"`` as ``None`` has no importance in YAML.
If using ANSIBLE_JINJA2_NATIVE we bypass this and return the actual value always
'''
if USE_JINJA2_NATIVE:
return thing
return thing if thing is not None else ''
def _fail_lookup(self, name, *args, **kwargs):