From f8c89562dd780a52bc525ed8239c2e2d831f5a4a Mon Sep 17 00:00:00 2001 From: Raphael Krupinski <10319569-mattesilver@users.noreply.gitlab.com> Date: Fri, 9 Feb 2024 13:32:57 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20JinjaAdapter=20when=20pass?= =?UTF-8?q?ing=20environment=20instance.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rybak/jinja.py | 2 +- tests/test_jinja.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/test_jinja.py diff --git a/src/rybak/jinja.py b/src/rybak/jinja.py index 6fdefba..bb02651 100644 --- a/src/rybak/jinja.py +++ b/src/rybak/jinja.py @@ -32,7 +32,7 @@ def __init__( else: if keep_trailing_newline is not None: self._env = environment.overlay() - self._env.keep_trailing_newline = self._keep_trailing_newline + self._env.keep_trailing_newline = keep_trailing_newline def render_str(self, template: str, data: TemplateData, loop_over: Optional[LoopOverFn] = None) -> str: env = self._env.overlay() diff --git a/tests/test_jinja.py b/tests/test_jinja.py new file mode 100644 index 0000000..1dc86e9 --- /dev/null +++ b/tests/test_jinja.py @@ -0,0 +1,34 @@ +import pytest +from jinja2 import Environment, FileSystemLoader +from rybak.jinja import JinjaAdapter + + +def test_jinja_init_keep_newlines(): + env = Environment(loader=FileSystemLoader('-path-')) + adapter = JinjaAdapter(env) + + assert adapter._env.keep_trailing_newline is True + + +def test_jinja_init_keep_newlines_false(): + env = Environment(loader=FileSystemLoader('-path-')) + adapter = JinjaAdapter(env, keep_trailing_newline=False) + + assert adapter._env.keep_trailing_newline is False + + +def test_jinja_loader(): + loader = FileSystemLoader('-path-') + adapter = JinjaAdapter(loader=loader) + + assert adapter._env.loader == loader + + +def test_jinja_env_loader_error(): + with pytest.raises(ValueError): + JinjaAdapter(environment=Environment(), loader=FileSystemLoader('-path-')) + + +def test_jinja_no_env_loader_error(): + with pytest.raises(ValueError): + JinjaAdapter()