Complete name-first 1C adapter saved-state support

This commit is contained in:
2026-07-26 16:39:53 +03:00
parent b8c62fa8fa
commit aed134d817
44 changed files with 15436 additions and 697 deletions
+74
View File
@@ -0,0 +1,74 @@
from __future__ import annotations
import sys
from pathlib import Path
from typing import Any
ROOT = Path(__file__).resolve().parents[2]
sys.path.insert(0, str(ROOT))
import scripts.smoke_1c_write_plan_safety as smoke # noqa: E402
def test_repository_gate_falls_back_to_non_mutating_path_route_probe(monkeypatch) -> None:
calls: list[tuple[str, dict[str, Any]]] = []
def fake_rpc_call(
_endpoint_url: str,
method: str,
payload: dict[str, Any],
_timeout: float,
*,
transport: str,
session_id: str | None,
) -> dict[str, Any]:
calls.append((method, payload))
assert transport == "rest"
assert session_id is None
if method == "metadata.write":
if payload.get("mode") == "apply":
return {
"schema": "onec_repository_write_gate.v1",
"status": "blocked",
"error": "needs_repository_lock",
}
return {
"schema": "onec_metadata_write.v1",
"status": "blocked",
"error": "write_plan_required",
"routed_method": "metadata.write.plan",
"target_kind": "form",
}
intent = payload.get("intent") or {}
if intent.get("current_text") is not None:
return {
"status": "blocked",
"allowed": False,
"problems": [{"code": "control_fragment_drift"}],
}
if intent.get("control_fragment"):
return {
"status": "planned",
"allowed": True,
"route": {"apply_method": "metadata.module.write_apply"},
"target": {"target_kind": "module"},
}
return {
"status": "blocked",
"allowed": False,
"problems": [{"code": "missing_control_fragment"}],
}
monkeypatch.setattr(smoke, "rpc_call", fake_rpc_call)
result = smoke.run_smoke("http://adapter", "upo_test", 30, transport="rest")
assert result["status"] == "ok"
assert result["failures"] == []
assert result["checks"]["blocked_effective_form_path"]["apply_gate"] == {
"status": "blocked",
"error": "needs_repository_lock",
}
metadata_write_modes = [payload["mode"] for method, payload in calls if method == "metadata.write"]
assert metadata_write_modes == ["apply", "plan"]