views: Optional[List[str]] = None
options: Optional[List[FlagsEnum]] = None
message: Optional[str] = None
+
+ def _validate(self) -> None:
+ if self.message and not self.action == "deny":
+ raise ValueError("'message' field can only be defined for 'deny' action")
--- /dev/null
+from pytest import raises
+
+from knot_resolver_manager.datamodel.rpz_schema import RPZSchema
+from knot_resolver_manager.exceptions import KresdManagerException
+
+
+def test_message():
+
+ assert RPZSchema({"action": "deny", "file": "blocklist.rpz", "message": "this is deny message"})
+
+ with raises(KresdManagerException):
+ RPZSchema({"action": "pass", "file": "whitelist.rpz", "message": "this is deny message"})