]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
manager: datamodel: templates: macro for boolean values
authorAleš Mrázek <ales.mrazek@nic.cz>
Wed, 3 May 2023 09:12:37 +0000 (11:12 +0200)
committerAleš Mrázek <ales.mrazek@nic.cz>
Fri, 9 Jun 2023 11:54:07 +0000 (11:54 +0000)
manager/knot_resolver_manager/datamodel/templates/macros/common_macros.lua.j2
manager/tests/unit/datamodel/templates/test_common_macros.py

index d576e6ba7d21f702d134312e1c1a2d9ecb6ba9db..4c2ba11a8e55c90d37c47a44f53e864a8cb10697 100644 (file)
@@ -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 -%}
index 0dee28810d8087b3b6c5abf69076ac9201a32cdd..611cb14db195bd9b15dc1225d76cf26102a17f84 100644 (file)
@@ -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"]