test: Update tests with McpError
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user