初始化提交
This commit is contained in:
commit
887c1f449e
963 files changed
+166869
No files matched your search
@@ -0,0 +1,62 @@
|
||||
"""MCP server 数据访问测试。"""
|
||||
|
||||
import pytest
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
from app.db.session import AsyncSessionLocal
|
||||
from app.models.mcp_servers import McpServer
|
||||
from app.repositories import mcp_servers as mcp_repo
|
||||
|
||||
|
||||
def _server(name: str = "weather", **overrides) -> McpServer:
|
||||
base = {
|
||||
"name": name,
|
||||
"endpoint_url": "http://mcp.local",
|
||||
"auth_token": None,
|
||||
"status": "enabled",
|
||||
"tools_json": "[]",
|
||||
}
|
||||
base.update(overrides)
|
||||
return McpServer(**base)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_add_and_get() -> None:
|
||||
async with AsyncSessionLocal() as session:
|
||||
s = _server()
|
||||
await mcp_repo.add_server(session, s)
|
||||
await session.commit()
|
||||
sid = s.id
|
||||
|
||||
async with AsyncSessionLocal() as session:
|
||||
fetched = await mcp_repo.get_server(session, sid)
|
||||
assert fetched is not None
|
||||
assert fetched.name == "weather"
|
||||
assert fetched.endpoint_url == "http://mcp.local"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_list_with_status_filter() -> None:
|
||||
async with AsyncSessionLocal() as session:
|
||||
await mcp_repo.add_server(session, _server("a", status="enabled"))
|
||||
await mcp_repo.add_server(session, _server("b", status="disabled"))
|
||||
await session.commit()
|
||||
|
||||
async with AsyncSessionLocal() as session:
|
||||
enabled = await mcp_repo.list_servers(session, status="enabled")
|
||||
all_servers = await mcp_repo.list_servers(session)
|
||||
assert len(enabled) == 1
|
||||
assert enabled[0].name == "a"
|
||||
assert len(all_servers) == 2
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_name_unique_conflict() -> None:
|
||||
async with AsyncSessionLocal() as session:
|
||||
await mcp_repo.add_server(session, _server("dup"))
|
||||
await session.commit()
|
||||
|
||||
async with AsyncSessionLocal() as session:
|
||||
with pytest.raises(IntegrityError):
|
||||
await mcp_repo.add_server(session, _server("dup"))
|
||||
await session.commit()
|
||||
Reference in new issue
Block a user