test: Update tests with McpError

This commit is contained in:
Chris Coutinho
2025-08-31 21:08:04 +02:00
parent ef1fb9e9aa
commit f79b957644
3 changed files with 8 additions and 8 deletions
+1 -1
View File
@@ -19,7 +19,7 @@ class Note(BaseModel):
favorite: bool = Field(
default=False, description="Whether note is marked as favorite"
)
etag: Optional[str] = Field(None, description="ETag for versioning")
etag: str = Field(description="ETag for versioning")
readonly: bool = Field(default=False, description="Whether note is read-only")
@property
+3 -1
View File
@@ -179,7 +179,9 @@ def configure_notes_tools(mcp: FastMCP):
async def nc_notes_append_content(
note_id: int, content: str, ctx: Context
) -> AppendContentResponse:
"""Append content to an existing note with a clear separator. The tool automatically adds separators between existing and new content - do not include separators in your content."""
"""Append content to an existing note. The tool adds a `\n---\n`
between the note and what will be appended."""
logger.info("Appending content to note %s", note_id)
client: NextcloudClient = ctx.request_context.lifespan_context.client
try:
+4 -6
View File
@@ -334,13 +334,11 @@ async def test_mcp_notes_etag_conflict(
)
# 4. Verify the update was rejected with a 412 error
# The MCP framework doesn't set isError=True for ErrorResponse, so check the response content
# With McpError, tools now return proper error responses
assert conflict_result.isError is True, "Update with stale ETag should fail"
response_content = conflict_result.content[0].text
response_data = json.loads(response_content)
assert response_data["success"] is False, "Update with stale ETag should fail"
assert "modified by someone else" in response_data["error"], (
f"Expected conflict error message, got: {response_data}"
assert "modified by someone else" in response_content, (
f"Expected conflict error message, got: {response_content}"
)
logger.info("Successfully verified ETag conflict handling via MCP")