Skip to content

[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 (closed)

Backport of MR !9587 (merged)

Merge request reports