fix: include null id in JSON-RPC invalid request error responses and add validation tests
This commit is contained in:
committed by
Igor Lins e Silva
parent
0fdb480e12
commit
55d79dc8cd
@@ -1969,7 +1969,7 @@ SUPPORTED_PROTOCOL_VERSIONS = [
|
||||
|
||||
def handle_request(request):
|
||||
if not isinstance(request, dict):
|
||||
return {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}}
|
||||
return {"jsonrpc": "2.0", "id": None, "error": {"code": -32600, "message": "Invalid Request"}}
|
||||
method = request.get("method") or ""
|
||||
params = request.get("params") or {}
|
||||
req_id = request.get("id")
|
||||
|
||||
@@ -190,6 +190,13 @@ class TestHandleRequest:
|
||||
resp = handle_request({"method": None, "id": 99, "params": {}})
|
||||
assert resp["error"]["code"] == -32601
|
||||
|
||||
@pytest.mark.parametrize("payload", [None, [], "plain", 42, True])
|
||||
def test_handle_request_invalid_payload_returns_jsonrpc_error(self, payload):
|
||||
from mempalace.mcp_server import handle_request
|
||||
|
||||
resp = handle_request(payload)
|
||||
assert resp == {"jsonrpc": "2.0", "id": None, "error": {"code": -32600, "message": "Invalid Request"}}
|
||||
|
||||
def test_tools_call_dispatches(self, monkeypatch, config, palace_path, seeded_kg):
|
||||
_patch_mcp_server(monkeypatch, config, seeded_kg)
|
||||
from mempalace.mcp_server import handle_request
|
||||
|
||||
Reference in New Issue
Block a user