From 31fa2ba10d7eadd90e853021257e9d6642a8e9e9 Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Mon, 29 Apr 2024 15:38:21 +0200 Subject: [PATCH] ENH: Test unique keyword for Entity.update_acl --- tests/test_permissions.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 7fffb27..17c5d2d 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -1350,3 +1350,33 @@ def test_select_query_with_invisible_reference(): values = select_results.get_property_values(*value_args)[0] assert values[0] is None assert values[1] is None + + +def test_update_acl_with_unique(): + + rt = db.RecordType(name="TestType").insert() + # Name duplicate + rec1 = db.Record(name="TestRec").add_parent(rt).insert() + # This should be invisible to test at first: + rec1.retrieve(flags={"ACL": None}) + rec1.deny(username=test_user, priority=False, permission="RETRIEVE:*") + rec1.update_acl() + rec2 = db.Record(name="TestRec").add_parent(rt).insert(unique=False) + switch_to_test_user() + with raises(db.TransactionError): + # Should be invisible to test user here + rec = db.Record(id=rec1.id).retrieve() + switch_to_admin_user() + rec1.retrieve(flags={"ACL": None}) + rec1.grant(username=test_user, priority=True, permission="RETRIEVE:*") + with raises(db.TransactionError): + # This should fail due to name collision + rec1.update_acl() + # This shouldn't + rec1.update_acl(unique=False) + + # test user should be able to see this + switch_to_test_user() + rec = db.Record(id=rec1.id).retrieve() + assert rec.name == rec1.name + assert rec.name == rec2.name -- GitLab