From: Aleš Date: Wed, 22 Dec 2021 15:34:50 +0000 (+0100) Subject: tests: datamodel: tests for jinja2 network_macros X-Git-Tag: v6.0.0a1~69^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c41662dbb742b07bde2396f3224982fa5bb87a3d;p=thirdparty%2Fknot-resolver.git tests: datamodel: tests for jinja2 network_macros --- diff --git a/manager/tests/unit/datamodel/templates/test_network_macros.py b/manager/tests/unit/datamodel/templates/test_network_macros.py new file mode 100644 index 000000000..c073c75e1 --- /dev/null +++ b/manager/tests/unit/datamodel/templates/test_network_macros.py @@ -0,0 +1,25 @@ +from knot_resolver_manager.datamodel.config_schema import template_from_str +from knot_resolver_manager.datamodel.network_schema import InterfaceSchema + + +def test_net_listen(): + ip = InterfaceSchema({"listen": {"ip": "::1", "port": 53}, "freebind": True}) + soc = InterfaceSchema({"listen": {"unix-socket": "/tmp/kresd-socket"}, "kind": "dot"}) + infc = InterfaceSchema({"listen": {"interface": "eth0"}, "kind": "doh"}) + + tmpl_str = """{% from 'macros/network_macros.lua.j2' import net_listen %} +{{ net_listen(interface) }}""" + + tmpl = template_from_str(tmpl_str) + assert ( + tmpl.render(interface=ip) + == f"net.listen('{ip.listen.ip}',{ip.listen.port},{{kind='dns',freebind={str(ip.freebind).lower()}}})" + ) + assert ( + tmpl.render(interface=soc) + == f"net.listen('{soc.listen.unix_socket}',nil,{{kind='tls',freebind={str(soc.freebind).lower()}}})" + ) + assert ( + tmpl.render(interface=infc) + == f"net.listen(net.{infc.listen.interface},443,{{kind='doh',freebind={str(soc.freebind).lower()}}})" + )