from django.contrib.auth import get_user_model from django.test import TestCase from apps.rbac.models import Permission, Role from apps.rbac.permissions import has_perm User = get_user_model() class RbacTests(TestCase): def test_has_perm_grants_and_denies(self): user = User.objects.create_user(username="op", password="x") perm = Permission.objects.create(code="processing.start") role = Role.objects.create(name="Operator", slug="operator") role.permissions.add(perm) user.user_roles.create(role=role) self.assertTrue(has_perm(user, "processing.start")) self.assertFalse(has_perm(user, "workflow.publish")) def test_superuser_has_all(self): user = User.objects.create_superuser(username="admin", password="x") self.assertTrue(has_perm(user, "anything.at.all"))