• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pycasbin / sqlobject-adapter / 8663334392

12 Apr 2024 02:06PM UTC coverage: 96.875%. Remained the same
8663334392

push

github

web-flow
docs: fix CI badge

93 of 96 relevant lines covered (96.88%)

0.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/tests/test_adapter.py
1
import os
1✔
2
import unittest
1✔
3

4
import casbin
1✔
5

6
from casbin_sqlobject_adapter import Adapter
1✔
7
from casbin_sqlobject_adapter import CasbinRule
1✔
8

9

10
def get_fixture(path):
1✔
11
    dir_path = os.path.split(os.path.realpath(__file__))[0] + "/"
1✔
12
    return os.path.abspath(dir_path + path)
1✔
13

14

15
def get_enforcer():
1✔
16
    con_string = "sqlite:/:memory:"
1✔
17
    adapter = Adapter(con_string)
1✔
18

19
    CasbinRule.createTable(ifNotExists=True)
1✔
20
    CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
1✔
21
    CasbinRule(ptype="p", v0="bob", v1="data2", v2="write")
1✔
22
    CasbinRule(ptype="p", v0="data2_admin", v1="data2", v2="read")
1✔
23
    CasbinRule(ptype="p", v0="data2_admin", v1="data2", v2="write")
1✔
24
    CasbinRule(ptype="g", v0="alice", v1="data2_admin")
1✔
25

26
    return casbin.Enforcer(get_fixture("rbac_model.conf"), adapter)
1✔
27

28

29
class TestConfig(unittest.TestCase):
1✔
30
    def test_enforcer_basic(self):
1✔
31
        e = get_enforcer()
1✔
32

33
        self.assertTrue(e.enforce("alice", "data1", "read"))
1✔
34
        self.assertFalse(e.enforce("bob", "data1", "read"))
1✔
35
        self.assertTrue(e.enforce("bob", "data2", "write"))
1✔
36
        self.assertTrue(e.enforce("alice", "data2", "read"))
1✔
37
        self.assertTrue(e.enforce("alice", "data2", "write"))
1✔
38

39
    def test_add_policy(self):
1✔
40
        e = get_enforcer()
1✔
41

42
        self.assertFalse(e.enforce("eve", "data3", "read"))
1✔
43
        res = e.add_permission_for_user("eve", "data3", "read")
1✔
44
        self.assertTrue(res)
1✔
45
        self.assertTrue(e.enforce("eve", "data3", "read"))
1✔
46

47
    def test_save_policy(self):
1✔
48
        e = get_enforcer()
1✔
49
        self.assertFalse(e.enforce("alice", "data4", "read"))
1✔
50

51
        model = e.get_model()
1✔
52
        model.clear_policy()
1✔
53

54
        model.add_policy("p", "p", ["alice", "data4", "read"])
1✔
55

56
        adapter = e.get_adapter()
1✔
57
        adapter.save_policy(model)
1✔
58
        self.assertTrue(e.enforce("alice", "data4", "read"))
1✔
59

60
    def test_str(self):
1✔
61
        rule = CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
1✔
62
        self.assertEqual(str(rule), "p, alice, data1, read")
1✔
63

64
    def test_repr(self):
1✔
65
        rule = CasbinRule(ptype="p", v0="alice", v1="data1", v2="read")
1✔
66
        self.assertRegex(repr(rule), r'<CasbinRule \d+: "p, alice, data1, read">')
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc