Skip to content

Commit 2789bdd

Browse files
committed
fix tests
1 parent e0d405d commit 2789bdd

File tree

3 files changed

+20
-12
lines changed

3 files changed

+20
-12
lines changed

tests/fixtures/simple_app.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,23 @@ async def list_items(
2525
skip: int = Query(0, description="Number of items to skip"),
2626
limit: int = Query(10, description="Max number of items to return"),
2727
sort_by: Optional[str] = Query(None, description="Field to sort by"),
28-
):
28+
) -> List[Item]:
2929
"""List all items with pagination and sorting options."""
3030
return items[skip : skip + limit]
3131

3232
@app.get("/items/{item_id}", response_model=Item, tags=["items"], operation_id="get_item")
3333
async def read_item(
3434
item_id: int = Path(..., description="The ID of the item to retrieve"),
3535
include_details: bool = Query(False, description="Include additional details"),
36-
):
36+
) -> Item:
3737
"""Get a specific item by its ID with optional details."""
3838
found_item = next((item for item in items if item.id == item_id), None)
3939
if found_item is None:
4040
raise HTTPException(status_code=404, detail="Item not found")
4141
return found_item
4242

4343
@app.post("/items/", response_model=Item, tags=["items"], operation_id="create_item")
44-
async def create_item(item: Item = Body(..., description="The item to create")):
44+
async def create_item(item: Item = Body(..., description="The item to create")) -> Item:
4545
"""Create a new item in the database."""
4646
items.append(item)
4747
return item
@@ -50,18 +50,18 @@ async def create_item(item: Item = Body(..., description="The item to create")):
5050
async def update_item(
5151
item_id: int = Path(..., description="The ID of the item to update"),
5252
item: Item = Body(..., description="The updated item data"),
53-
):
53+
) -> Item:
5454
"""Update an existing item."""
5555
item.id = item_id
5656
return item
5757

5858
@app.delete("/items/{item_id}", status_code=204, tags=["items"], operation_id="delete_item")
59-
async def delete_item(item_id: int = Path(..., description="The ID of the item to delete")):
59+
async def delete_item(item_id: int = Path(..., description="The ID of the item to delete")) -> None:
6060
"""Delete an item from the database."""
6161
return None
6262

63-
@app.get("/error", status_code=200, tags=["error"], operation_id="raise_error")
64-
async def raise_error():
63+
@app.get("/error", tags=["error"], operation_id="raise_error")
64+
async def raise_error() -> None:
6565
"""Fail on purpose and cause a 500 error."""
6666
raise Exception("This is a test error")
6767

tests/test_basic_functionality.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def test_create_mcp_server(simple_fastapi_app: FastAPI):
2222
assert len(mcp.operation_map) > 0, "Should have operation mapping"
2323

2424
# Check that the operation map contains all expected operations from simple_app
25-
expected_operations = ["list_items", "get_item", "create_item", "update_item", "delete_item"]
25+
expected_operations = ["list_items", "get_item", "create_item", "update_item", "delete_item", "raise_error"]
2626
for op in expected_operations:
2727
assert op in mcp.operation_map, f"Operation {op} not found in operation map"
2828

tests/test_configuration.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,9 @@ def test_describe_all_responses_config_simple_app(simple_fastapi_app: FastAPI):
8181

8282
for tool in mcp_default.tools:
8383
assert tool.description is not None
84-
if tool.name != "delete_item":
84+
if tool.name == "raise_error":
85+
pass
86+
elif tool.name != "delete_item":
8587
assert tool.description.count("**200**") == 1, "The description should contain a 200 status code"
8688
assert tool.description.count("**Example Response:**") == 1, (
8789
"The description should only contain one example response"
@@ -103,7 +105,9 @@ def test_describe_all_responses_config_simple_app(simple_fastapi_app: FastAPI):
103105

104106
for tool in mcp_all_responses.tools:
105107
assert tool.description is not None
106-
if tool.name != "delete_item":
108+
if tool.name == "raise_error":
109+
pass
110+
elif tool.name != "delete_item":
107111
assert tool.description.count("**200**") == 1, "The description should contain a 200 status code"
108112
assert tool.description.count("**422**") == 1, "The description should contain a 422 status code"
109113
assert tool.description.count("**Example Response:**") == 2, (
@@ -137,7 +141,9 @@ def test_describe_full_response_schema_config_simple_app(simple_fastapi_app: Fas
137141

138142
for tool in mcp_full_response_schema.tools:
139143
assert tool.description is not None
140-
if tool.name != "delete_item":
144+
if tool.name == "raise_error":
145+
pass
146+
elif tool.name != "delete_item":
141147
assert tool.description.count("**200**") == 1, "The description should contain a 200 status code"
142148
assert tool.description.count("**Example Response:**") == 1, (
143149
"The description should only contain one example response"
@@ -170,7 +176,9 @@ def test_describe_all_responses_and_full_response_schema_config_simple_app(simpl
170176

171177
for tool in mcp_all_responses_and_full_response_schema.tools:
172178
assert tool.description is not None
173-
if tool.name != "delete_item":
179+
if tool.name == "raise_error":
180+
pass
181+
elif tool.name != "delete_item":
174182
assert tool.description.count("**200**") == 1, "The description should contain a 200 status code"
175183
assert tool.description.count("**422**") == 1, "The description should contain a 422 status code"
176184
assert tool.description.count("**Example Response:**") == 2, (

0 commit comments

Comments
 (0)