X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=tests%2Facl_test.py;h=400961728b28039d95b20b23f73b10d37c7fd399;hb=1263057778bbf2229f03b1864428319b0918aaff;hp=810aedf48bd7bd925132a1c5b940cf62c09f1462;hpb=e516059c716537259c601c022cc3bad44025385e;p=python_utils.git diff --git a/tests/acl_test.py b/tests/acl_test.py index 810aedf..4009617 100755 --- a/tests/acl_test.py +++ b/tests/acl_test.py @@ -1,20 +1,23 @@ #!/usr/bin/env python3 +# © Copyright 2021-2022, Scott Gasch + +"""acl unittest.""" + import re import unittest import acl -import bootstrap +import unittest_utils # Needed for --unittests_ignore_perf flag class TestSimpleACL(unittest.TestCase): - def test_set_based_acl(self): even = acl.SetBasedACL( - allow_set = set([2, 4, 6, 8, 10]), - deny_set = set([1, 3, 5, 7, 9]), - order_to_check_allow_deny = acl.ACL_ORDER_ALLOW_DENY, - default_answer = False + allow_set=set([2, 4, 6, 8, 10]), + deny_set=set([1, 3, 5, 7, 9]), + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, ) self.assertTrue(even(2)) self.assertFalse(even(3)) @@ -22,28 +25,68 @@ class TestSimpleACL(unittest.TestCase): def test_wildcard_based_acl(self): a_or_b = acl.StringWildcardBasedACL( - allowed_patterns = ['a*', 'b*'], - order_to_check_allow_deny = acl.ACL_ORDER_ALLOW_DENY, - default_answer = False + allowed_patterns=['a*', 'b*'], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, ) self.assertTrue(a_or_b('aardvark')) - self.assertTrue(a_or_b('bubblegum')) - self.assertFalse(a_or_b('charlie')) + self.assertTrue(a_or_b('baboon')) + self.assertFalse(a_or_b('cheetah')) def test_re_based_acl(self): weird = acl.StringREBasedACL( - denied_regexs = [ - re.compile('^a.*a$'), - re.compile('^b.*b$') - ], - order_to_check_allow_deny = acl.ACL_ORDER_ALLOW_DENY, - default_answer = True + denied_regexs=[re.compile('^a.*a$'), re.compile('^b.*b$')], + order_to_check_allow_deny=acl.Order.DENY_ALLOW, + default_answer=True, ) self.assertTrue(weird('aardvark')) self.assertFalse(weird('anaconda')) - self.assertFalse(weird('beelzebub')) + self.assertFalse(weird('blackneb')) + self.assertTrue(weird('crow')) + + def test_compound_acls_disjunction(self): + a_b_c = acl.StringWildcardBasedACL( + allowed_patterns=['a*', 'b*', 'c*'], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + c_d_e = acl.StringWildcardBasedACL( + allowed_patterns=['c*', 'd*', 'e*'], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + disjunction = acl.AnyCompoundACL( + subacls=[a_b_c, c_d_e], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + self.assertTrue(disjunction('aardvark')) + self.assertTrue(disjunction('caribou')) + self.assertTrue(disjunction('eagle')) + self.assertFalse(disjunction('newt')) + + def test_compound_acls_conjunction(self): + a_b_c = acl.StringWildcardBasedACL( + allowed_patterns=['a*', 'b*', 'c*'], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + c_d_e = acl.StringWildcardBasedACL( + allowed_patterns=['c*', 'd*', 'e*'], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + conjunction = acl.AllCompoundACL( + subacls=[a_b_c, c_d_e], + order_to_check_allow_deny=acl.Order.ALLOW_DENY, + default_answer=False, + ) + self.assertFalse(conjunction('aardvark')) + self.assertTrue(conjunction('caribou')) + self.assertTrue(conjunction('condor')) + self.assertFalse(conjunction('eagle')) + self.assertFalse(conjunction('newt')) if __name__ == '__main__': - unittest.main = bootstrap.initialize(unittest.main) unittest.main()