From: Nicki Křížek Date: Wed, 1 Apr 2026 17:42:38 +0000 (+0200) Subject: Allow instantiating template dataclasses in jinja2 templates X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=9851982d3fe395fe8e5f66247c19d81f4c82e634;p=thirdparty%2Fbind9.git Allow instantiating template dataclasses in jinja2 templates 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) --- diff --git a/bin/tests/system/isctest/template.py b/bin/tests/system/isctest/template.py index b90054e4a5f..130d3630693 100644 --- a/bin/tests/system/isctest/template.py +++ b/bin/tests/system/isctest/template.py @@ -56,12 +56,17 @@ class TemplateEngine: 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(