|
17 | 17 | long-timeout ``install`` / ``update`` / ``rebuild`` paths are pinned by unit |
18 | 18 | tests rather than run live (a real install rebuilds an app image and would |
19 | 19 | add minutes to every CI run). |
20 | | -* **Proxy HTTP** — a ``GET`` smoke check requires a successful Node-RED |
21 | | - response through Ingress. |
| 20 | +* **Proxy HTTP** — outside the in-app tier, a ``GET`` smoke check requires a |
| 21 | + successful Node-RED response through Ingress. In-app routing is covered by |
| 22 | + the direct-port probe because ingress session creation is Core-only. |
22 | 23 | * **Proxy with ``port=``** — only meaningful in the in-app tier, where the |
23 | 24 | ha-mcp server under test runs on Supervisor's app network. Marked |
24 | 25 | ``inaddon_only`` so other tiers skip it cleanly. |
|
41 | 42 | from typing import Any |
42 | 43 |
|
43 | 44 | import pytest |
44 | | -from haos_runtime import HA_MCP_DEV_ADDON_SLUG |
| 45 | +from haos_runtime import HA_MCP_DEV_ADDON_SLUG, is_haos_inaddon_mode |
45 | 46 |
|
46 | 47 | from ..utilities.assertions import MCPAssertions, parse_mcp_result, safe_call_tool |
47 | 48 | from ..utilities.wait_helpers import _POLLING_TRANSIENT_ERRORS |
@@ -365,6 +366,11 @@ async def test_proxy_http_get_returns_successful_response(mcp_client: Any) -> No |
365 | 366 | Requires a real successful response rather than accepting a proxy or |
366 | 367 | transport error as evidence that the route works. |
367 | 368 | """ |
| 369 | + if is_haos_inaddon_mode(): |
| 370 | + pytest.skip( |
| 371 | + "In-app servers cannot mint Core-only ingress sessions; " |
| 372 | + "the in-app HTTP route is covered by the direct-port probe" |
| 373 | + ) |
368 | 374 | slug = await _resolve_slug(mcp_client, NODERED_NAME) |
369 | 375 | async with MCPAssertions(mcp_client) as mcp: |
370 | 376 | payload = await mcp.call_tool_success( |
@@ -441,6 +447,11 @@ async def test_array_patch_empty_operations_returns_validation_error( |
441 | 447 |
|
442 | 448 | async def test_python_transform_filters_http_response(mcp_client: Any) -> None: |
443 | 449 | """`python_transform` runs after a successful Node-RED HTTP response.""" |
| 450 | + if is_haos_inaddon_mode(): |
| 451 | + pytest.skip( |
| 452 | + "In-app servers cannot mint Core-only ingress sessions; " |
| 453 | + "the in-app HTTP route is covered by the direct-port probe" |
| 454 | + ) |
444 | 455 | slug = await _resolve_slug(mcp_client, NODERED_NAME) |
445 | 456 | async with MCPAssertions(mcp_client) as mcp: |
446 | 457 | payload = await mcp.call_tool_success( |
|
0 commit comments