|
1 | 1 | from unittest import TestCase |
| 2 | + |
2 | 3 | from casbin.model import Model |
3 | 4 | from tests.test_enforcer import get_examples |
4 | 5 |
|
@@ -53,6 +54,43 @@ def test_add_role_policy(self): |
53 | 54 | self.assertTrue(m.get_policy('p', 'p') == [p_rule1, p_rule2]) |
54 | 55 | self.assertTrue(m.get_policy('g', 'g') == [g_rule]) |
55 | 56 |
|
| 57 | + def test_update_policy(self): |
| 58 | + m = Model() |
| 59 | + m.load_model(get_examples("basic_model.conf")) |
| 60 | + |
| 61 | + old_rule = ['admin', 'domain1', 'data1', 'read'] |
| 62 | + new_rule = ['admin', 'domain1', 'data2', 'read'] |
| 63 | + |
| 64 | + m.add_policy('p', 'p', old_rule) |
| 65 | + self.assertTrue(m.has_policy('p', 'p', old_rule)) |
| 66 | + |
| 67 | + m.update_policy('p', 'p', old_rule, new_rule) |
| 68 | + self.assertFalse(m.has_policy('p', 'p', old_rule)) |
| 69 | + self.assertTrue(m.has_policy('p', 'p', new_rule)) |
| 70 | + |
| 71 | + def test_update_policies(self): |
| 72 | + m = Model() |
| 73 | + m.load_model(get_examples("basic_model.conf")) |
| 74 | + |
| 75 | + old_rules = [['admin', 'domain1', 'data1', 'read'], |
| 76 | + ['admin', 'domain1', 'data2', 'read'], |
| 77 | + ['admin', 'domain1', 'data3', 'read']] |
| 78 | + new_rules = [['admin', 'domain1', 'data4', 'read'], |
| 79 | + ['admin', 'domain1', 'data5', 'read'], |
| 80 | + ['admin', 'domain1', 'data6', 'read']] |
| 81 | + |
| 82 | + m.add_policies('p', 'p', old_rules) |
| 83 | + |
| 84 | + for old_rule in old_rules: |
| 85 | + self.assertTrue(m.has_policy('p', 'p', old_rule)) |
| 86 | + |
| 87 | + m.update_policies('p', 'p', old_rules, new_rules) |
| 88 | + |
| 89 | + for old_rule in old_rules: |
| 90 | + self.assertFalse(m.has_policy('p', 'p', old_rule)) |
| 91 | + for new_rule in new_rules: |
| 92 | + self.assertTrue(m.has_policy('p', 'p', new_rule)) |
| 93 | + |
56 | 94 | def test_remove_policy(self): |
57 | 95 | m = Model() |
58 | 96 | m.load_model(get_examples("basic_model.conf")) |
|
0 commit comments