Lots of changes.
[python_utils.git] / tests / simple_acl_test.py
1 #!/usr/bin/env python3
2
3 import re
4 import unittest
5
6 import simple_acl as acl
7
8
9 class TestSimpleACL(unittest.TestCase):
10
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.ACL_ORDER_ALLOW_DENY,
16             default_answer = False
17         )
18         self.assertTrue(even(2))
19         self.assertFalse(even(3))
20         self.assertFalse(even(-4))
21
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.ACL_ORDER_ALLOW_DENY,
26             default_answer = False
27         )
28         self.assertTrue(a_or_b('aardvark'))
29         self.assertTrue(a_or_b('bubblegum'))
30         self.assertFalse(a_or_b('charlie'))
31
32     def test_re_based_acl(self):
33         weird = acl.StringREBasedACL(
34             denied_regexs = [
35                 re.compile('^a.*a$'),
36                 re.compile('^b.*b$')
37             ],
38             order_to_check_allow_deny = acl.ACL_ORDER_ALLOW_DENY,
39             default_answer = True
40         )
41         self.assertTrue(weird('aardvark'))
42         self.assertFalse(weird('anaconda'))
43         self.assertFalse(weird('beelzebub'))
44
45
46 if __name__ == '__main__':
47     unittest.main()