45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
"""MCP HTTP client 测试。
|
|
|
|
测试 client.py 公共函数。
|
|
"""
|
|
|
|
from app.integrations.mcp.client import _auth_headers, _parse_call_result
|
|
|
|
|
|
class TestAuthHeaders:
|
|
def test_with_token(self) -> None:
|
|
assert _auth_headers("secret") == {"Authorization": "Bearer secret"}
|
|
|
|
def test_without_token(self) -> None:
|
|
assert _auth_headers(None) == {}
|
|
|
|
|
|
class TestParseCallResult:
|
|
def test_success(self) -> None:
|
|
result = _parse_call_result(
|
|
{
|
|
"result": {
|
|
"content": [{"type": "text", "text": "结果"}],
|
|
}
|
|
}
|
|
)
|
|
assert result.ok is True
|
|
assert result.stdout == "结果"
|
|
|
|
def test_error(self) -> None:
|
|
result = _parse_call_result({"error": {"message": "出错了"}})
|
|
assert result.ok is False
|
|
assert "出错了" in result.stderr
|
|
|
|
def test_is_error_flag(self) -> None:
|
|
result = _parse_call_result(
|
|
{
|
|
"result": {
|
|
"content": [],
|
|
"isError": True,
|
|
}
|
|
}
|
|
)
|
|
assert result.ok is False
|
|
assert result.exit_code == 1
|