Cover full 1C metadata object catalog
This commit is contained in:
@@ -219,6 +219,43 @@ def test_normalize_edt_project_preserves_source_path_and_common_object_descripti
|
||||
assert common_forms[0].metadata["comment"] == "Используется в подборе товаров"
|
||||
|
||||
|
||||
def test_normalize_edt_project_knows_full_common_metadata_catalog(tmp_path: Path):
|
||||
for file_name, class_name, object_name in [
|
||||
("Продажи.mdo", "Subsystem", "Продажи"),
|
||||
("Менеджер.mdo", "Role", "Менеджер"),
|
||||
("ПроведениеДокументов.mdo", "Sequence", "ПроведениеДокументов"),
|
||||
("ОбщийНумератор.mdo", "DocumentNumerator", "ОбщийНумератор"),
|
||||
("ДоступностьСкидок.mdo", "FunctionalOption", "ДоступностьСкидок"),
|
||||
("ФормаПодбора.mdo", "CommonForm", "ФормаПодбора"),
|
||||
("ПубличныйAPI.mdo", "HTTPService", "ПубличныйAPI"),
|
||||
]:
|
||||
(tmp_path / file_name).write_text(
|
||||
f"""
|
||||
<mdclass:{class_name} xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass">
|
||||
<name>{object_name}</name>
|
||||
</mdclass:{class_name}>
|
||||
""",
|
||||
encoding="utf-8",
|
||||
)
|
||||
|
||||
normalized = normalize_one_c_project(tmp_path, project_id="edt-full-common")
|
||||
objects = {
|
||||
item.qualified_name
|
||||
for group in normalized.configuration.groups
|
||||
for item in group.objects
|
||||
}
|
||||
|
||||
assert {
|
||||
"Подсистема.Продажи",
|
||||
"Роль.Менеджер",
|
||||
"Последовательность.ПроведениеДокументов",
|
||||
"НумераторДокументов.ОбщийНумератор",
|
||||
"ФункциональнаяОпция.ДоступностьСкидок",
|
||||
"ОбщаяФорма.ФормаПодбора",
|
||||
"HTTPСервис.ПубличныйAPI",
|
||||
}.issubset(objects)
|
||||
|
||||
|
||||
def test_normalize_edt_project_preserves_localized_descriptions(tmp_path: Path):
|
||||
catalog = tmp_path / "Контрагенты.mdo"
|
||||
catalog.write_text(
|
||||
|
||||
Reference in New Issue
Block a user