41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
from contextlib import asynccontextmanager
|
|
from pathlib import Path
|
|
from tempfile import TemporaryDirectory
|
|
|
|
import pytest
|
|
|
|
from konabot.common.database import DatabaseManager
|
|
from konabot.common.permsys import PermManager, register_default_allow_permission
|
|
from konabot.common.permsys.entity import PermEntity
|
|
from konabot.common.permsys.migrates import execute_migration
|
|
|
|
|
|
@asynccontextmanager
|
|
async def tempdb():
|
|
with TemporaryDirectory() as _tempdir:
|
|
tempdir = Path(_tempdir)
|
|
db = DatabaseManager(tempdir / "perm.sqlite3")
|
|
yield db
|
|
await db.close_all_connections()
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_register_default_allow_permission_records_key():
|
|
register_default_allow_permission("test.default.allow")
|
|
|
|
async with tempdb() as db:
|
|
async with db.get_conn() as conn:
|
|
await execute_migration(conn)
|
|
|
|
pm = PermManager(db)
|
|
await pm.update_permission(
|
|
PermEntity("sys", "global", "global"),
|
|
"test.default.allow",
|
|
True,
|
|
)
|
|
|
|
assert await pm.check_has_permission(
|
|
[PermEntity("dummy", "user", "1"), PermEntity("sys", "global", "global")],
|
|
"test.default.allow.sub",
|
|
)
|