Preserve extension names in form write selectors

This commit is contained in:
2026-07-26 17:14:45 +03:00
parent 1ca47dce13
commit 9d7c4f38f3
2 changed files with 53 additions and 2 deletions
+45
View File
@@ -3024,6 +3024,7 @@ def test_saved_state_forms_search_disambiguates_same_form_name_by_owner(monkeypa
def test_saved_state_forms_search_default_is_name_first(monkeypatch: pytest.MonkeyPatch) -> None:
file_name = "extension-guid__form-guid.0"
monkeypatch.setattr(adapter_server, "extension_filter_to_guid", lambda *args, **kwargs: ("extension-guid", None))
monkeypatch.setattr(
adapter_server,
"storage_files_list",
@@ -3080,6 +3081,7 @@ def test_saved_state_forms_search_default_is_name_first(monkeypatch: pytest.Monk
{
"base_id": "upo_test",
"tables": ["ConfigCASSave"],
"extension": "test2",
"ref": "Catalog.test2",
"form": "t_Форма",
"command": "ЗаменаДомена",
@@ -3092,11 +3094,13 @@ def test_saved_state_forms_search_default_is_name_first(monkeypatch: pytest.Monk
form = result["forms"][0]
assert form["qualified_name"] == "test2.t_Форма"
assert form["selector"] == {
"extension": "test2",
"ref": "Catalog.test2",
"form": "t_Форма",
"qualified_name": "test2.t_Форма",
}
assert form["matches"][0]["selector"] == {
"extension": "test2",
"ref": "Catalog.test2",
"form": "t_Форма",
"qualified_name": "test2.t_Форма",
@@ -3125,6 +3129,47 @@ def test_saved_state_forms_search_default_is_name_first(monkeypatch: pytest.Monk
assert storage_marker not in str(result)
def test_saved_state_form_search_resolves_owner_for_internal_name_first_write(monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setattr(
adapter_server,
"metadata_form_decode",
lambda payload: {
"status": "ok",
"source": {"kind": "live_sql", "table": payload["table"], "file_name": payload["file_name"]},
"form": {"file_name": payload["file_name"]},
"profile": {"items": [], "commands": []},
"counts": {"items": 0, "commands": 0},
},
)
monkeypatch.setattr(
adapter_server,
"saved_state_form_descriptor_identity",
lambda **kwargs: {"name": "t_Форма", "synonym": "T форма", "guid": "form-guid"},
)
monkeypatch.setattr(
adapter_server,
"saved_state_related_descriptor_identity",
lambda **kwargs: {
"kind": "Catalog",
"name": "test2",
"synonym": "Test2",
"guid": "owner-guid",
},
)
row = adapter_server.saved_state_form_search_row(
base_id="upo_test",
table="ConfigCASSave",
file_name="extension-guid__form-guid.0",
payload={"include_storage": True, "form": "t_Форма"},
timeout_seconds=30,
)
assert row is not None
assert row["owner"]["kind"] == "Catalog"
assert row["owner"]["name"] == "test2"
def test_saved_state_forms_search_help_exposes_owner_and_form_selectors() -> None:
method = {
row["name"]: row