Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: XNLLLLH <XNLLLLH@users.noreply.github.com>
76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
"""Phase 5 RED-state test scaffold. Tasks 2-5 turn these GREEN.
|
|
|
|
Covers / D5-06: 15th profile knob `wake_depth` (enum minimal|standard|deep,
|
|
default=minimal, sealed) registered in KNOB_REGISTRY, set via profile_get_set.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from iai_mcp.profile import (
|
|
PHASE_1_LIVE,
|
|
PROFILE_KNOBS,
|
|
default_state,
|
|
profile_get,
|
|
profile_set,
|
|
)
|
|
|
|
|
|
def test_registry_has_15_knobs():
|
|
"""Plan 07.12-02: 11 sealed entries (10 AUTIST + wake_depth MCP-12).
|
|
|
|
Test/file name kept for git history stability — was '15' post-MCP-12
|
|
, now 11 after Plan 07.12-02 removed AUTIST-02/08/11/12.
|
|
"""
|
|
assert len(PROFILE_KNOBS) == 11
|
|
|
|
|
|
def test_wake_depth_knob_exists():
|
|
assert "wake_depth" in PROFILE_KNOBS
|
|
|
|
|
|
def test_wake_depth_knob_shape():
|
|
"""D5-06: enum:minimal|standard|deep, default=minimal, MCP-12."""
|
|
spec = PROFILE_KNOBS["wake_depth"]
|
|
# value_schema shape
|
|
assert spec.value_schema == "enum:minimal|standard|deep", spec.value_schema
|
|
# default
|
|
assert spec.default == "minimal"
|
|
# phase = live in (counts toward PHASE_1_LIVE)
|
|
assert spec.phase == 1
|
|
# requirement_id
|
|
assert spec.requirement_id == "MCP-12"
|
|
|
|
|
|
def test_wake_depth_in_phase_1_live():
|
|
"""wake_depth is live, not deferred."""
|
|
assert "wake_depth" in PHASE_1_LIVE
|
|
|
|
|
|
def test_wake_depth_default_applies():
|
|
"""default_state returns wake_depth='minimal' when not set elsewhere."""
|
|
state = default_state()
|
|
assert state.get("wake_depth") == "minimal"
|
|
|
|
|
|
def test_wake_depth_set_valid():
|
|
"""profile_set('wake_depth', 'standard', state) succeeds."""
|
|
state = default_state()
|
|
r = profile_set("wake_depth", "standard", state)
|
|
assert r["status"] == "ok"
|
|
assert state["wake_depth"] == "standard"
|
|
# And 'deep' too
|
|
r2 = profile_set("wake_depth", "deep", state)
|
|
assert r2["status"] == "ok"
|
|
|
|
|
|
def test_wake_depth_set_invalid_rejected():
|
|
"""profile_set rejects values outside the enum."""
|
|
state = default_state()
|
|
r = profile_set("wake_depth", "weird", state)
|
|
assert r["status"] == "error"
|
|
|
|
|
|
def test_profile_get_wake_depth_returns_value():
|
|
state = default_state()
|
|
r = profile_get("wake_depth", state)
|
|
assert r["knob"] == "wake_depth"
|
|
assert r["value"] == "minimal"
|