test(rbac): isolate admin permission mutation
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-22 21:16:34 +00:00
parent 3cdab1dd7c
commit 933f0a5471

View file

@ -188,9 +188,24 @@ def test_admin_is_explicit_and_loses_removed_permission(app):
assert not has_permission('*', user) assert not has_permission('*', user)
assert has_permission('stock.view', user) assert has_permission('stock.view', user)
stock = Permission.query.filter_by(code='stock.view').first() stock = Permission.query.filter_by(code='stock.view').first()
RolePermission.query.filter_by(role_id=admin.id, permission_id=stock.id).delete() link = RolePermission.query.filter_by(
role_id=admin.id, permission_id=stock.id
).one()
try:
db.session.delete(link)
db.session.commit() db.session.commit()
assert not has_permission('stock.view', user) assert not has_permission('stock.view', user)
finally:
# Ce test vérifie un retrait temporaire ; il ne doit pas laisser
# le rôle système admin dans un état modifié pour les tests
# suivants (notamment les smoke tests stock).
if not RolePermission.query.filter_by(
role_id=admin.id, permission_id=stock.id
).first():
db.session.add(RolePermission(
role_id=admin.id, permission_id=stock.id, effect='allow'
))
db.session.commit()
def test_last_super_admin_cannot_be_removed_or_deactivated(app): def test_last_super_admin_cannot_be_removed_or_deactivated(app):