Skip to content

Commit dae8035

Browse files
committed
test: add coverage for line 211 in convert.py
1 parent 4ad4eef commit dae8035

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

tests/test_openapi_conversion.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,3 +271,28 @@ def test_request_body_handling(complex_fastapi_app: FastAPI):
271271
assert "create_order" in operation_map
272272
assert operation_map["create_order"]["path"] == "/orders"
273273
assert operation_map["create_order"]["method"] == "post"
274+
275+
276+
def test_missing_type_handling(complex_fastapi_app: FastAPI):
277+
openapi_schema = get_openapi(
278+
title=complex_fastapi_app.title,
279+
version=complex_fastapi_app.version,
280+
openapi_version=complex_fastapi_app.openapi_version,
281+
description=complex_fastapi_app.description,
282+
routes=complex_fastapi_app.routes,
283+
)
284+
285+
# Remove the type field from the product_id schema
286+
params = openapi_schema["paths"]["/products/{product_id}"]["get"]["parameters"]
287+
for param in params:
288+
if param.get("name") == "product_id" and "schema" in param:
289+
param["schema"].pop("type", None)
290+
break
291+
292+
tools, operation_map = convert_openapi_to_mcp_tools(openapi_schema)
293+
294+
get_product_tool = next(tool for tool in tools if tool.name == "get_product")
295+
get_product_props = get_product_tool.inputSchema["properties"]
296+
297+
assert "product_id" in get_product_props
298+
assert get_product_props["product_id"].get("type") == "string" # Default type applied

0 commit comments

Comments
 (0)