In some cases, the template data might need to be set directly in the
jinja2 templates using `{% set %}`. Expose the template dataclasses to
the templates so we can use these existing classes, rather than creating
ad-hoc data containers.
(cherry picked from commit
dddb0673517ccbba50941d91dec3c55e1f7f52b4)
pytest.skip("jinja2 not found")
loader = jinja2.FileSystemLoader(str(self.directory))
- return jinja2.Environment(
+ self._j2env = jinja2.Environment(
loader=loader,
undefined=jinja2.StrictUndefined,
variable_start_string="@",
variable_end_string="@",
)
+ # allow instantiating the template dataclasses in jinja2 templates when
+ # using {% set %}
+ self._j2env.globals["Nameserver"] = Nameserver
+ self._j2env.globals["TrustAnchor"] = TrustAnchor
+ self._j2env.globals["Zone"] = Zone
return self._j2env
def render(