Squashed 'paste-framework/' content from commit 34e8684

git-subtree-dir: paste-framework
git-subtree-split: 34e8684c4bc3cebbe177509f42ab4ef5b5425a7a
This commit is contained in:
zwf
2026-06-02 19:09:22 +08:00
commit 4729698049
107 changed files with 21484 additions and 0 deletions
+113
View File
@@ -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)