10 class TestSimpleACL(unittest.TestCase):
12 def test_set_based_acl(self):
13 even = acl.SetBasedACL(
14 allow_set = set([2, 4, 6, 8, 10]),
15 deny_set = set([1, 3, 5, 7, 9]),
16 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
17 default_answer = False
19 self.assertTrue(even(2))
20 self.assertFalse(even(3))
21 self.assertFalse(even(-4))
23 def test_wildcard_based_acl(self):
24 a_or_b = acl.StringWildcardBasedACL(
25 allowed_patterns = ['a*', 'b*'],
26 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
27 default_answer = False
29 self.assertTrue(a_or_b('aardvark'))
30 self.assertTrue(a_or_b('baboon'))
31 self.assertFalse(a_or_b('cheetah'))
33 def test_re_based_acl(self):
34 weird = acl.StringREBasedACL(
39 order_to_check_allow_deny = acl.Order.DENY_ALLOW,
42 self.assertTrue(weird('aardvark'))
43 self.assertFalse(weird('anaconda'))
44 self.assertFalse(weird('blackneb'))
45 self.assertTrue(weird('crow'))
47 def test_compound_acls_disjunction(self):
48 a_b_c = acl.StringWildcardBasedACL(
49 allowed_patterns = ['a*', 'b*', 'c*'],
50 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
51 default_answer = False
53 c_d_e = acl.StringWildcardBasedACL(
54 allowed_patterns = ['c*', 'd*', 'e*'],
55 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
56 default_answer = False
58 disjunction = acl.AnyCompoundACL(
59 subacls = [a_b_c, c_d_e],
60 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
61 default_answer = False,
63 self.assertTrue(disjunction('aardvark'))
64 self.assertTrue(disjunction('caribou'))
65 self.assertTrue(disjunction('eagle'))
66 self.assertFalse(disjunction('newt'))
68 def test_compound_acls_conjunction(self):
69 a_b_c = acl.StringWildcardBasedACL(
70 allowed_patterns = ['a*', 'b*', 'c*'],
71 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
72 default_answer = False
74 c_d_e = acl.StringWildcardBasedACL(
75 allowed_patterns = ['c*', 'd*', 'e*'],
76 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
77 default_answer = False
79 conjunction = acl.AllCompoundACL(
80 subacls = [a_b_c, c_d_e],
81 order_to_check_allow_deny = acl.Order.ALLOW_DENY,
82 default_answer = False,
84 self.assertFalse(conjunction('aardvark'))
85 self.assertTrue(conjunction('caribou'))
86 self.assertTrue(conjunction('condor'))
87 self.assertFalse(conjunction('eagle'))
88 self.assertFalse(conjunction('newt'))
91 if __name__ == '__main__':
92 unittest.main = bootstrap.initialize(unittest.main)