This commit is contained in:
@@ -54,3 +54,58 @@ def test_parse_openapi_to_tool_bundle_operation_id(app):
|
||||
assert tool_bundles[0].operation_id == "<root>_get"
|
||||
assert tool_bundles[1].operation_id == "apiresources_get"
|
||||
assert tool_bundles[2].operation_id == "createResource"
|
||||
|
||||
|
||||
def test_parse_openapi_to_tool_bundle_properties_all_of(app):
|
||||
openapi = {
|
||||
"openapi": "3.0.0",
|
||||
"info": {"title": "Simple API", "version": "1.0.0"},
|
||||
"servers": [{"url": "http://localhost:3000"}],
|
||||
"paths": {
|
||||
"/api/resource": {
|
||||
"get": {
|
||||
"requestBody": {
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"$ref": "#/components/schemas/Request",
|
||||
},
|
||||
},
|
||||
},
|
||||
"required": True,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"components": {
|
||||
"schemas": {
|
||||
"Request": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"prop1": {
|
||||
"enum": ["option1"],
|
||||
"description": "desc prop1",
|
||||
"allOf": [
|
||||
{"$ref": "#/components/schemas/AllOfItem"},
|
||||
{
|
||||
"enum": ["option2"],
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
"AllOfItem": {
|
||||
"type": "string",
|
||||
"enum": ["option3"],
|
||||
"description": "desc allOf item",
|
||||
},
|
||||
}
|
||||
},
|
||||
}
|
||||
with app.test_request_context():
|
||||
tool_bundles = ApiBasedToolSchemaParser.parse_openapi_to_tool_bundle(openapi)
|
||||
|
||||
assert tool_bundles[0].parameters[0].type == "string"
|
||||
assert tool_bundles[0].parameters[0].llm_description == "desc prop1"
|
||||
# TODO: support enum in OpenAPI
|
||||
# assert set(tool_bundles[0].parameters[0].options) == {"option1", "option2", "option3"}
|
||||
|
Reference in New Issue
Block a user