]> git.ipfire.org Git - thirdparty/bind9.git/commit
[9.18] new: dev: Support jinja2 templates in pytest runner
authorNicki Křížek <nicki@isc.org>
Thu, 31 Oct 2024 13:34:12 +0000 (13:34 +0000)
committerNicki Křížek <nicki@isc.org>
Thu, 31 Oct 2024 13:34:12 +0000 (13:34 +0000)
commitfa2ff6b690967cbe793ba90cfde391ec0bab4ab4
tree44b10553087b51fbbdb4dd382fce3ec6b69a3198
parent6d00009c1747eaec483454f44e9506cc643c3904
parent89866d148a39f679ea5697bc16bad21143740c08
[9.18] new: dev: Support jinja2 templates in pytest runner

Configuration files in system tests which require some variables (e.g.
port numbers) filled in during test setup, can now use jinja2 templates
when `jinja2` python package is available.

Any `*.j2` file found within the system test directory will be
automatically rendered with the environment variables into a file
without the `.j2` extension by the pytest runner. E.g.
`ns1/named.conf.j2` will become `ns1/named.conf` during test setup. To
avoid automatic rendering, use `.j2.manual` extension and render the
files manually at test time.

New `templates` pytest fixture has been added. Its `render()` function
can be used to render a template with custom test variables. This can be
useful to fill in different config options during the test. With
advanced jinja2 template syntax, it can also be used to include/omit
entire sections of the config file rather than using `named1.conf.in`,
`named2.conf.in` etc.

Closes #4938

Backport of MR !9587

Merge branch 'backport-4938-use-jinja2-templates-in-system-tests-9.18' into 'bind-9.18'

See merge request isc-projects/bind9!9700