class TestPermissionOperations(object): def setup(self): self.p1 = Permission(1, 2) self.p2 = Permission(2, 3) | Refusal(4) def test_union(self): assert self.p1.union(self.p2) == Permission(1, 2, 3) | Refusal(4) def test_union_operator(self): assert self.p1 | self.p2 == Permission(1, 2, 3) | Refusal(4) def test_intersection(self): assert self.p1.intersection(self.p2) == Permission(2) def test_intersection_operator(self): assert self.p1 & self.p2 == Permission(2) def test_difference(self): assert self.p1.difference(self.p2) == Permission(1) def test_difference_operator(self): assert self.p1 - self.p2 == Permission(1) def test_symmetric_difference(self): assert self.p1.symmetric_difference(self.p2) == \ Permission(1, 3) | Refusal(4) def test_symmetric_difference_operator(self): assert self.p1 ^ self.p2 == Permission(1, 3) | Refusal(4)
def test_authorize_or_403_required_missing(self): needs = Permission(1, 2, 3) provides = [1, 2] try: needs.authorize_or_403(provides) except Forbidden: assert True else: assert False
def test_authorize_or_403_forbidden(self): needs = Permission(1, 2) | Refusal(3) provides = [1, 2, 3] try: needs.authorize_or_403(provides) except Forbidden: assert True else: assert False
class TestPermissionComparisons(object): def setup(self): self.p1 = Permission(1, 2) | Refusal(4) self.p2 = Permission(1, 2) | Refusal(4) self.p3 = Permission(1, 2, 3) | Refusal(4, 5) def test_equals(self): assert self.p1 == self.p2 def test_not_equals(self): assert self.p1 != self.p3 def test_isdisjoint(self): p = Permission(3, 4) | Refusal(5) assert self.p1.isdisjoint(p) def test_issubset(self): assert self.p1.issubset(self.p2) assert self.p1.issubset(self.p3) def test_issubset_operator(self): assert self.p1 <= self.p2 assert self.p1 <= self.p3 def test_issubset_strict_operator(self): assert not self.p1 < self.p2 assert self.p1 < self.p3 def test_issuperset(self): assert self.p1.issuperset(self.p2) assert self.p3.issuperset(self.p1) def test_issuperset_operator(self): assert self.p1 >= self.p2 assert self.p3 >= self.p1 def test_issuperset_strict_operator(self): assert not self.p1 > self.p2 assert self.p3 > self.p1 def test_nonzero_true(self): assert self.p1 def test_nonzero_false(self): assert not Permission()
def test_symmetric_difference_operator(self): assert self.p1 ^ self.p2 == Permission(1, 3) | Refusal(4)
def test_symmetric_difference(self): assert self.p1.symmetric_difference(self.p2) == \ Permission(1, 3) | Refusal(4)
def test_difference_operator(self): assert self.p1 - self.p2 == Permission(1)
def test_difference(self): assert self.p1.difference(self.p2) == Permission(1)
def test_intersection_operator(self): assert self.p1 & self.p2 == Permission(2)
def test_intersection(self): assert self.p1.intersection(self.p2) == Permission(2)
def setup(self): self.p1 = Permission(1, 2) | Refusal(4) self.p2 = Permission(1, 2) | Refusal(4) self.p3 = Permission(1, 2, 3) | Refusal(4, 5)
def test_isdisjoint(self): p = Permission(3, 4) | Refusal(5) assert self.p1.isdisjoint(p)
def test_repr(self): p = Permission(1) assert repr(p) == "<Permission required=set([1]), forbidden=set([])>"
def test_init_args(self): p = Permission(1, 2, 3) assert p.required == set([1, 2, 3]) assert p.forbidden == set()
def test_init(self): p = Permission() assert p.required == set() assert p.forbidden == set()
def test_union_operator(self): assert self.p1 | self.p2 == Permission(1, 2, 3) | Refusal(4)
def test_nonzero_false(self): assert not Permission()
def test_union(self): assert self.p1.union(self.p2) == Permission(1, 2, 3) | Refusal(4)