From: Aleš Mrázek Date: Wed, 3 May 2023 09:12:37 +0000 (+0200) Subject: manager: datamodel: templates: macro for boolean values X-Git-Tag: v6.0.1~11^2^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2a35724a7ffb8727851a443e338624c11bd7315a;p=thirdparty%2Fknot-resolver.git manager: datamodel: templates: macro for boolean values --- diff --git a/manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2 b/manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2 index d576e6ba7..4c2ba11a8 100644 --- a/manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2 +++ b/manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2 @@ -2,6 +2,14 @@ '{{ string }}' {%- endmacro %} +{% macro boolean(val, negation=false) -%} +{%- if negation -%} +{{ 'false' if val else 'true' }} +{%- else-%} +{{ 'true' if val else 'false' }} +{%- endif -%} +{%- endmacro %} + {# Return string or table of strings #} {% macro string_table(table) -%} {%- if table is string -%} diff --git a/manager/tests/unit/datamodel/templates/test_common_macros.py b/manager/tests/unit/datamodel/templates/test_common_macros.py index 0dee28810..611cb14db 100644 --- a/manager/tests/unit/datamodel/templates/test_common_macros.py +++ b/manager/tests/unit/datamodel/templates/test_common_macros.py @@ -2,6 +2,24 @@ from knot_resolver_manager.datamodel.config_schema import template_from_str from knot_resolver_manager.datamodel.forward_schema import ForwardServerSchema +def test_boolean(): + tmpl_str = """{% from 'macros/common_macros.lua.j2' import boolean %} +{{ boolean(x) }}""" + + tmpl = template_from_str(tmpl_str) + assert tmpl.render(x=True) == "true" + assert tmpl.render(x=False) == "false" + + +def test_boolean_neg(): + tmpl_str = """{% from 'macros/common_macros.lua.j2' import boolean %} +{{ boolean(x,true) }}""" + + tmpl = template_from_str(tmpl_str) + assert tmpl.render(x=True) == "false" + assert tmpl.render(x=False) == "true" + + def test_string_table(): s = "any string" t = [s, "other string"]