首次提交
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
"""
|
||||
RBAC 模型集成测试。
|
||||
需要真实数据库连接,默认被跳过。
|
||||
运行方式:pytest tests/integration/ -v
|
||||
"""
|
||||
|
||||
import pandas as pd
|
||||
import pytest
|
||||
|
||||
from paste.rbac.rbac_user import RbacUser, RbacItem, RbacPermission, RbacAssignment
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
class TestRbacUser:
|
||||
"""RBAC 用户模型集成测试"""
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_user_query_generates_sql(self):
|
||||
"""验证用户查询能生成 SQL"""
|
||||
query = RbacUser().gen_query()
|
||||
sql = RbacUser.raw_sql(query)
|
||||
assert sql is not None
|
||||
assert 'SELECT' in str(sql)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_user_query_all(self):
|
||||
"""测试查询所有用户"""
|
||||
query = RbacUser().gen_query()
|
||||
users = await RbacUser.query_all(query)
|
||||
assert isinstance(users, list)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_user_query_as_dataframe(self):
|
||||
"""测试用户查询返回 DataFrame"""
|
||||
query = RbacUser().gen_query()
|
||||
df = await RbacUser.query_as_df(query)
|
||||
assert isinstance(df, pd.DataFrame)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_find_by_username(self):
|
||||
"""测试根据用户名查询"""
|
||||
user = await RbacUser.find_by_username('test')
|
||||
# 如果用户不存在,返回 None
|
||||
if user is not None:
|
||||
assert isinstance(user, RbacUser)
|
||||
assert user.username == 'test'
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
class TestRbacItem:
|
||||
"""RBAC 授权项模型集成测试"""
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_item_query_all(self):
|
||||
"""测试查询所有授权项"""
|
||||
query = RbacItem().gen_query()
|
||||
items = await RbacItem.query_all(query)
|
||||
assert isinstance(items, list)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_item_query_as_dataframe(self):
|
||||
"""测试授权项查询返回 DataFrame"""
|
||||
query = RbacItem().gen_query()
|
||||
df = await RbacItem.query_as_df(query)
|
||||
assert isinstance(df, pd.DataFrame)
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
class TestRbacPermission:
|
||||
"""RBAC 权限模型集成测试"""
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_permission_query_all(self):
|
||||
"""测试查询所有权限"""
|
||||
query = RbacPermission().gen_query()
|
||||
permissions = await RbacPermission.query_all(query)
|
||||
assert isinstance(permissions, list)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_permission_query_as_dataframe(self):
|
||||
"""测试权限查询返回 DataFrame"""
|
||||
query = RbacPermission().gen_query()
|
||||
df = await RbacPermission.query_as_df(query)
|
||||
assert isinstance(df, pd.DataFrame)
|
||||
|
||||
|
||||
@pytest.mark.integration
|
||||
class TestRbacAssignment:
|
||||
"""RBAC 分配关系集成测试"""
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_assignment_query_all(self):
|
||||
"""测试查询所有分配关系"""
|
||||
query = RbacAssignment().gen_query()
|
||||
assignments = await RbacAssignment.query_all(query)
|
||||
assert isinstance(assignments, list)
|
||||
|
||||
@pytest.mark.skip(reason="需要真实数据库连接")
|
||||
@pytest.mark.asyncio
|
||||
async def test_assignment_query_as_dataframe(self):
|
||||
"""测试分配关系查询返回 DataFrame"""
|
||||
query = RbacAssignment().gen_query()
|
||||
df = await RbacAssignment.query_as_df(query)
|
||||
assert isinstance(df, pd.DataFrame)
|
||||
Reference in New Issue
Block a user