Harden 1C saved-state writes and cache consistency
This commit is contained in:
@@ -75,7 +75,7 @@ def declared_attribute_tree(*, include_new: bool = False) -> dict[str, Any]:
|
||||
seq(atom(1), atom(0), atom(new_guid)),
|
||||
string("КодПоставщика"),
|
||||
seq(atom(1), string("ru"), string("Код поставщика")),
|
||||
string("Комментарий реквизита"),
|
||||
string(""),
|
||||
atom("type-settings"),
|
||||
)
|
||||
)
|
||||
@@ -437,9 +437,42 @@ def test_object_member_add_plan_clones_attribute_and_generates_guid(monkeypatch)
|
||||
assert result["requested_member"]["guid"] == new_guid
|
||||
assert result["requested_member"]["ref"] == "Catalog.Номенклатура.Attribute.КодПоставщика"
|
||||
assert result["container"] == {"ref": "Catalog.Номенклатура", "scope": "object"}
|
||||
assert result["requested_member"]["comment"] == ""
|
||||
assert result["clone_validation"]["settings_preserved"] is True
|
||||
assert result["clone_validation"]["stale_references"] == []
|
||||
assert append["parent_path"] == "4"
|
||||
assert cloned_identities[new_guid]["name"] == "КодПоставщика"
|
||||
assert cloned_identities[new_guid]["synonyms"]["ru"] == "Код поставщика"
|
||||
cloned_comment = adapter.config_tree_identity_property_target(
|
||||
append["node"],
|
||||
new_guid,
|
||||
"comment",
|
||||
)
|
||||
assert cloned_comment["current"] == ""
|
||||
|
||||
|
||||
def test_object_member_clone_blocks_template_identity_references_outside_identity_fields() -> None:
|
||||
template = seq(
|
||||
seq(atom(1), atom(0), atom("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")),
|
||||
string("Артикул"),
|
||||
seq(atom(1), string("ru"), string("Артикул товара")),
|
||||
string("Комментарий реквизита"),
|
||||
seq(atom("type-settings"), string("Артикул")),
|
||||
)
|
||||
|
||||
cloned, validation = adapter.clone_metadata_member_record(
|
||||
template,
|
||||
template_guid="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
|
||||
new_guid="bbbbbbbb-cccc-dddd-eeee-ffffffffffff",
|
||||
new_name="КодПоставщика",
|
||||
new_synonym="Код поставщика",
|
||||
new_comment="",
|
||||
)
|
||||
|
||||
assert cloned is None
|
||||
assert validation["status"] == "blocked"
|
||||
assert validation["error"] == "template_identity_referenced_outside_identity_fields"
|
||||
assert validation["stale_references"] == [{"path": "4.1", "value": "Артикул"}]
|
||||
|
||||
|
||||
def test_object_member_add_scopes_tabular_column_guid_and_ref(monkeypatch) -> None:
|
||||
|
||||
Reference in New Issue
Block a user