Accept id alias in MCP prompt read tools
This commit is contained in:
@@ -205,3 +205,26 @@ def test_web_login_with_unicode_token(tmp_path, monkeypatch):
|
||||
with TestClient(create_app(tmp_path)) as c:
|
||||
assert c.post('/api/login',json={'token':'falsch-ü'}).status_code == 401
|
||||
assert c.post('/api/login',json={'token':'synthetic-ä-admin-🔐'}).status_code == 200
|
||||
|
||||
|
||||
def test_mcp_id_aliases_and_conflicts(client):
|
||||
p=make(client)
|
||||
headers={'Authorization':'Bearer '+client.mcp_token,'Accept':'application/json, text/event-stream'}
|
||||
def call(tool,args):
|
||||
response=client.post('/mcp/',headers=headers,json={'jsonrpc':'2.0','id':1,'method':'tools/call','params':{'name':tool,'arguments':args}})
|
||||
assert response.status_code == 200
|
||||
return response.json()['result']
|
||||
listed=client.post('/mcp/',headers=headers,json={'jsonrpc':'2.0','id':2,'method':'tools/list','params':{}}).json()['result']['tools']
|
||||
for tool in ['get_prompt','get_prompt_versions']:
|
||||
schema=next(t['inputSchema'] for t in listed if t['name']==tool)
|
||||
assert {'id','prompt_id'} <= set(schema['properties'])
|
||||
canonical=call(tool,{'prompt_id':p['id']})
|
||||
assert not canonical.get('isError')
|
||||
assert call(tool,{'id':p['id']}) == canonical
|
||||
assert call(tool,{'id':p['id'],'prompt_id':p['id']}) == canonical
|
||||
for args in [{},{'id':''},{'id':' '},{'id':p['id'],'prompt_id':'different'}]:
|
||||
assert call(tool,args)['isError']
|
||||
assert call('get_prompt',{'id':p['id'],'version':1}) == call('get_prompt',{'prompt_id':p['id'],'version':1})
|
||||
client.post('/api/prompts/'+p['id']+'/trash')
|
||||
assert call('get_prompt',{'id':p['id']})['isError']
|
||||
assert call('get_prompt_versions',{'id':p['id']})['isError']
|
||||
|
||||
Reference in New Issue
Block a user