fix: reject mismatched capability inspection

This commit is contained in:
lda
2026-08-31 01:09:53 +07:00 Verified
parent d6f5a2e31d
commit 5a4b69a27b
2 changed files with 17 additions and 0 deletions
+8
View File
@@ -94,6 +94,14 @@ class App:
await self._port.inspect_capability(qualified_name=name)
)
qualified_name = wire["name"]
if qualified_name != name:
raise InvalidResponse(
operation="workflow.capabilities.inspect",
details=(
f"inspected capability {qualified_name!r} does not match "
f"requested {name!r}"
),
)
source_id = wire["source_id"]
return RemoteCapability(
_port=self._port,
+9
View File
@@ -6,6 +6,7 @@ import httpx
import pytest
from wf_client import App, CapabilitySummary, Page
from wf_client.errors import InvalidResponse
from wf_client.protocols import WorkflowClientPort
from wf_platform import CapabilityRef
@@ -119,3 +120,11 @@ async def test_capability_reference_keeps_dotted_local_key() -> None:
assert capability.ref.source.parts == ("app", "default")
assert capability.ref.name == "search.v2"
@pytest.mark.asyncio
async def test_capability_rejects_mismatched_inspection_name() -> None:
app = _app(capability_name="app.default.other")
with pytest.raises(InvalidResponse, match="workflow.capabilities.inspect"):
await app.capability("app.default.search")