From 177348ce347a254ed2d9b15f12f2180575acd0ef Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Tue, 15 Mar 2022 15:08:24 +0100 Subject: [PATCH] TST: add new tests for ACL --- unittests/test_acl.py | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 unittests/test_acl.py diff --git a/unittests/test_acl.py b/unittests/test_acl.py new file mode 100644 index 00000000..f05de1be --- /dev/null +++ b/unittests/test_acl.py @@ -0,0 +1,50 @@ +# -*- encoding: utf-8 -*- +# +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2022 Indiscale GmbH <info@indiscale.com> +# Copyright (C) 2022 Timm Fitschen <f.fitschen@indiscale.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. +# +import caosdb as db +from lxml import etree + + +def test_parse_xml(): + xml_str = """ + <EntityACL> + <Grant priority="False" role="role1"> + <Permission name="RETRIEVE:ENTITY"/> + </Grant> + <Deny priority="False" role="role1"> + <Permission name="RETRIEVE:ENTITY"/> + </Deny> + <Grant priority="True" role="role1"> + <Permission name="RETRIEVE:ENTITY"/> + </Grant> + <Deny priority="True" role="role1"> + <Permission name="RETRIEVE:ENTITY"/> + </Deny> + </EntityACL>""" + xml = etree.fromstring(xml_str) + left_acl = db.ACL(xml) + + right_acl = db.ACL() + right_acl.grant(role="role1", permission="RETRIEVE:ENTITY", revoke_denial=False) + right_acl.deny(role="role1", permission="RETRIEVE:ENTITY", revoke_grant=False) + right_acl.grant(role="role1", permission="RETRIEVE:ENTITY", priority=True, revoke_denial=False) + right_acl.deny(role="role1", permission="RETRIEVE:ENTITY", priority=True, revoke_grant=False) + + assert left_acl == right_acl -- GitLab