@@ -141,6 +141,32 @@ def test_enforce_priority(self):
141141 self .assertTrue (e .enforce ("bob" , "data2" , "read" ))
142142 self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
143143
144+ def test_enforce_priority_explicit (self ):
145+ e = self .get_enforcer (
146+ get_examples ("priority_model_explicit.conf" ),
147+ get_examples ("priority_policy_explicit.csv" ),
148+ )
149+
150+ self .assertTrue (e .enforce ("alice" , "data1" , "write" ))
151+ self .assertTrue (e .enforce ("alice" , "data1" , "read" ))
152+ self .assertFalse (e .enforce ("bob" , "data2" , "read" ))
153+ self .assertTrue (e .enforce ("bob" , "data2" , "write" ))
154+ self .assertFalse (e .enforce ("data1_deny_group" , "data1" , "read" ))
155+ self .assertFalse (e .enforce ("data1_deny_group" , "data1" , "write" ))
156+ self .assertTrue (e .enforce ("data2_allow_group" , "data2" , "read" ))
157+ self .assertTrue (e .enforce ("data2_allow_group" , "data2" , "write" ))
158+
159+ e .add_policy ("1" , "bob" , "data2" , "write" , "deny" )
160+
161+ self .assertTrue (e .enforce ("alice" , "data1" , "write" ))
162+ self .assertTrue (e .enforce ("alice" , "data1" , "read" ))
163+ self .assertFalse (e .enforce ("bob" , "data2" , "read" ))
164+ self .assertFalse (e .enforce ("bob" , "data2" , "write" ))
165+ self .assertFalse (e .enforce ("data1_deny_group" , "data1" , "read" ))
166+ self .assertFalse (e .enforce ("data1_deny_group" , "data1" , "write" ))
167+ self .assertTrue (e .enforce ("data2_allow_group" , "data2" , "read" ))
168+ self .assertTrue (e .enforce ("data2_allow_group" , "data2" , "write" ))
169+
144170 def test_enforce_priority_indeterminate (self ):
145171 e = self .get_enforcer (
146172 get_examples ("priority_model.conf" ),
0 commit comments