1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
from unittest import TestCase
from rules.permissions import (
ObjectPermissionBackend,
add_perm,
has_perm,
perm_exists,
permissions,
remove_perm,
set_perm,
)
from rules.predicates import always_false, always_true
class PermissionsTests(TestCase):
@staticmethod
def reset_ruleset(ruleset):
for k in list(ruleset.keys()):
ruleset.pop(k)
def setUp(self):
self.reset_ruleset(permissions)
def tearDown(self):
self.reset_ruleset(permissions)
def test_permissions_ruleset(self):
add_perm("can_edit_book", always_true)
assert "can_edit_book" in permissions
assert perm_exists("can_edit_book")
assert has_perm("can_edit_book")
with self.assertRaises(KeyError):
add_perm("can_edit_book", always_false)
set_perm("can_edit_book", always_false)
assert not has_perm("can_edit_book")
remove_perm("can_edit_book")
assert not perm_exists("can_edit_book")
def test_backend(self):
backend = ObjectPermissionBackend()
assert backend.authenticate("someuser", "password") is None
add_perm("can_edit_book", always_true)
assert "can_edit_book" in permissions
assert backend.has_perm(None, "can_edit_book")
assert backend.has_module_perms(None, "can_edit_book")
with self.assertRaises(KeyError):
add_perm("can_edit_book", always_true)
set_perm("can_edit_book", always_false)
assert not backend.has_perm(None, "can_edit_book")
remove_perm("can_edit_book")
assert not perm_exists("can_edit_book")
|