Skip to content

Commit 3c83b8b

Browse files
Wire failure-isolation catch conformance fixture 072
Parse the `catch` directive on the failure_isolation fixture middleware config and add fixture 072 to the failure-isolation fixture set. 072 (two cases) drives the catch gate matching through a §9.7 instance node_exception carrier (degrade) and a non-matching catch (propagate).
1 parent 9ef9d6a commit 3c83b8b

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

tests/conformance/test_pipeline_utilities.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def _load(path: Path) -> dict[str, Any]:
9595
# by test_checkpoint.py, which also owns fixture 067, hence the gap at 67).
9696
# 071 (fan-out degrade strict-reducer-raise, proposal 0069 coverage,
9797
# spec v0.63.1) is an FI-degrade fixture this runner drives.
98-
_FAILURE_ISOLATION_FIXTURES = frozenset(range(58, 67)) | {68, 69, 71}
98+
_FAILURE_ISOLATION_FIXTURES = frozenset(range(58, 67)) | {68, 69, 71, 72}
9999

100100

101101
def _fixture_paths() -> list[Path]:
@@ -447,7 +447,8 @@ def predicate(exc: Exception) -> bool:
447447

448448
def _build_failure_isolation(config: Mapping[str, Any], sinks: CaptureSinks) -> Middleware:
449449
"""Build the canonical FailureIsolationMiddleware from a fixture
450-
``failure_isolation`` config (fixtures 058-063)."""
450+
``failure_isolation`` config (fixtures 058-063; the ``catch`` category
451+
gate is fixture 072)."""
451452
degraded_raw = config["degraded_update"]
452453
degraded: DegradedUpdate
453454
if isinstance(degraded_raw, dict):
@@ -493,6 +494,7 @@ async def on_caught_cb(_exc: Exception) -> None:
493494
return FailureIsolationMiddleware(
494495
degraded_update=degraded,
495496
event_name=cast("str", config["event_name"]),
497+
catch=cast("list[str] | None", config.get("catch")),
496498
predicate=_build_isolation_predicate(cast("Mapping[str, Any] | None", config.get("predicate"))),
497499
on_caught=on_caught,
498500
)

0 commit comments

Comments
 (0)