feat: make mode creation preview-only and cache-safe
This commit is contained in:
@@ -264,7 +264,7 @@ def test_unsupported_or_out_of_range_addition_rejects_all_changes_atomically(add
|
||||
assert not _hashes(user_root)
|
||||
|
||||
|
||||
def test_adding_devices_to_full_twelve_action_draft_never_truncates_original_actions(addition_service):
|
||||
def test_adding_devices_to_full_twenty_action_draft_never_truncates_original_actions(addition_service):
|
||||
service, _, user_root = addition_service
|
||||
operations = [
|
||||
("climate.set_power", "vehicle", {"state": "on"}),
|
||||
@@ -279,6 +279,14 @@ def test_adding_devices_to_full_twelve_action_draft_never_truncates_original_act
|
||||
("ambient_light.set_power", "vehicle", {"state": "off"}),
|
||||
("interior_light.set_indoor_power", "vehicle", {"state": "off"}),
|
||||
("interior_light.set_reading_power", "all", {"state": "off"}),
|
||||
("window.set_position", "rear_left", {"position_pct": 0}),
|
||||
("window.set_position", "rear_right", {"position_pct": 0}),
|
||||
("ambient_light.set_mode", "vehicle", {"mode": "romantic"}),
|
||||
("ambient_light.set_brightness_level", "vehicle", {"brightness_level": 2}),
|
||||
("ambient_light.set_color_index", "vehicle", {"color_index": 6}),
|
||||
("seat.set_heating", "passenger", {"state": "on", "level": 1}),
|
||||
("seat.set_backrest_recline", "passenger", {"position_pct": 45}),
|
||||
("seat.set_legrest_height", "passenger", {"position_pct": 35}),
|
||||
]
|
||||
plan = {
|
||||
"detected_domains": sorted({cap.split(".", 1)[0] for cap, _, _ in operations}),
|
||||
@@ -287,11 +295,11 @@ def test_adding_devices_to_full_twelve_action_draft_never_truncates_original_act
|
||||
"operation": "set", "parameters": [{"name": name, "value": value} for name, value in params.items()],
|
||||
"duration_ms": None, "reason": "固定目标边界回归。",
|
||||
} for cap, target, params in operations],
|
||||
"ambiguities": [], "confidence": 0.95, "decision_summary": ["验证12项原动作保留。"],
|
||||
"ambiguities": [], "confidence": 0.95, "decision_summary": ["验证20项原动作保留。"],
|
||||
}
|
||||
original = _preview(service, "构建一个满载参数模式", plan=plan)
|
||||
_assert_draft(original)
|
||||
assert len(_actions(original)) == 12
|
||||
assert len(_actions(original)) == 20
|
||||
source_path = service.artifact_root / original["request_id"] / "result.json"
|
||||
source_hash = hashlib.sha256(source_path.read_bytes()).hexdigest()
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user