7 import unittest_utils # Needed for --unittests_ignore_perf flag
10 class TestSimpleACL(unittest.TestCase):
11 def test_set_based_acl(self):
12 even = acl.SetBasedACL(
13 allow_set=set([2, 4, 6, 8, 10]),
14 deny_set=set([1, 3, 5, 7, 9]),
15 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
18 self.assertTrue(even(2))
19 self.assertFalse(even(3))
20 self.assertFalse(even(-4))
22 def test_wildcard_based_acl(self):
23 a_or_b = acl.StringWildcardBasedACL(
24 allowed_patterns=['a*', 'b*'],
25 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
28 self.assertTrue(a_or_b('aardvark'))
29 self.assertTrue(a_or_b('baboon'))
30 self.assertFalse(a_or_b('cheetah'))
32 def test_re_based_acl(self):
33 weird = acl.StringREBasedACL(
34 denied_regexs=[re.compile('^a.*a$'), re.compile('^b.*b$')],
35 order_to_check_allow_deny=acl.Order.DENY_ALLOW,
38 self.assertTrue(weird('aardvark'))
39 self.assertFalse(weird('anaconda'))
40 self.assertFalse(weird('blackneb'))
41 self.assertTrue(weird('crow'))
43 def test_compound_acls_disjunction(self):
44 a_b_c = acl.StringWildcardBasedACL(
45 allowed_patterns=['a*', 'b*', 'c*'],
46 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
49 c_d_e = acl.StringWildcardBasedACL(
50 allowed_patterns=['c*', 'd*', 'e*'],
51 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
54 disjunction = acl.AnyCompoundACL(
55 subacls=[a_b_c, c_d_e],
56 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
59 self.assertTrue(disjunction('aardvark'))
60 self.assertTrue(disjunction('caribou'))
61 self.assertTrue(disjunction('eagle'))
62 self.assertFalse(disjunction('newt'))
64 def test_compound_acls_conjunction(self):
65 a_b_c = acl.StringWildcardBasedACL(
66 allowed_patterns=['a*', 'b*', 'c*'],
67 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
70 c_d_e = acl.StringWildcardBasedACL(
71 allowed_patterns=['c*', 'd*', 'e*'],
72 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
75 conjunction = acl.AllCompoundACL(
76 subacls=[a_b_c, c_d_e],
77 order_to_check_allow_deny=acl.Order.ALLOW_DENY,
80 self.assertFalse(conjunction('aardvark'))
81 self.assertTrue(conjunction('caribou'))
82 self.assertTrue(conjunction('condor'))
83 self.assertFalse(conjunction('eagle'))
84 self.assertFalse(conjunction('newt'))
87 if __name__ == '__main__':