Cover full 1C metadata object catalog
This commit is contained in:
@@ -287,6 +287,37 @@ _ACCESS_TARGET_KINDS = {
|
||||
NodeKind.SCHEDULED_JOB,
|
||||
NodeKind.BUSINESS_PROCESS,
|
||||
NodeKind.TASK,
|
||||
NodeKind.SUBSYSTEM,
|
||||
NodeKind.SEQUENCE,
|
||||
NodeKind.DOCUMENT_NUMERATOR,
|
||||
NodeKind.EVENT_SUBSCRIPTION,
|
||||
NodeKind.SESSION_PARAMETER,
|
||||
NodeKind.COMMON_ATTRIBUTE,
|
||||
NodeKind.FILTER_CRITERION,
|
||||
NodeKind.FUNCTIONAL_OPTION,
|
||||
NodeKind.FUNCTIONAL_OPTION_PARAMETER,
|
||||
NodeKind.DEFINED_TYPE,
|
||||
NodeKind.SETTINGS_STORAGE,
|
||||
NodeKind.COMMON_COMMAND,
|
||||
NodeKind.COMMAND_GROUP,
|
||||
NodeKind.COMMON_FORM,
|
||||
NodeKind.COMMON_LAYOUT,
|
||||
NodeKind.COMMON_PICTURE,
|
||||
NodeKind.WEB_SERVICE,
|
||||
NodeKind.HTTP_SERVICE,
|
||||
NodeKind.WS_REFERENCE,
|
||||
NodeKind.WEBSOCKET_CLIENT,
|
||||
NodeKind.INTEGRATION_SERVICE,
|
||||
NodeKind.BOT,
|
||||
NodeKind.INTERFACE,
|
||||
NodeKind.FULL_TEXT_SEARCH_DICTIONARY,
|
||||
NodeKind.PALETTE_COLOR,
|
||||
NodeKind.STYLE_ITEM,
|
||||
NodeKind.STYLE,
|
||||
NodeKind.LANGUAGE,
|
||||
NodeKind.XDTO_PACKAGE,
|
||||
NodeKind.EXTENSION,
|
||||
NodeKind.ROLE,
|
||||
}
|
||||
if _EVENT_SUBSCRIPTION_KIND is not None:
|
||||
_ACCESS_TARGET_KINDS.add(_EVENT_SUBSCRIPTION_KIND)
|
||||
@@ -299,6 +330,18 @@ _OWNERSHIP_TARGET_KINDS = {
|
||||
NodeKind.SCHEDULED_JOB,
|
||||
NodeKind.BUSINESS_PROCESS,
|
||||
NodeKind.TASK,
|
||||
NodeKind.SUBSYSTEM,
|
||||
NodeKind.SEQUENCE,
|
||||
NodeKind.DOCUMENT_NUMERATOR,
|
||||
NodeKind.COMMON_FORM,
|
||||
NodeKind.COMMON_COMMAND,
|
||||
NodeKind.HTTP_SERVICE,
|
||||
NodeKind.WEB_SERVICE,
|
||||
NodeKind.WS_REFERENCE,
|
||||
NodeKind.WEBSOCKET_CLIENT,
|
||||
NodeKind.INTEGRATION_SERVICE,
|
||||
NodeKind.BOT,
|
||||
NodeKind.ROLE,
|
||||
}
|
||||
if _EVENT_SUBSCRIPTION_KIND is not None:
|
||||
_OWNERSHIP_TARGET_KINDS.add(_EVENT_SUBSCRIPTION_KIND)
|
||||
@@ -3905,6 +3948,43 @@ _FLOWCHART_KIND_LABELS = {
|
||||
NodeKind.REGISTER: "Регистры",
|
||||
NodeKind.REPORT: "Отчеты",
|
||||
NodeKind.DATA_PROCESSOR: "Обработки",
|
||||
NodeKind.CONSTANT: "Константы",
|
||||
NodeKind.DOCUMENT_JOURNAL: "Журналы документов",
|
||||
NodeKind.ENUM: "Перечисления",
|
||||
NodeKind.CHART_OF_CHARACTERISTIC_TYPES: "Планы видов характеристик",
|
||||
NodeKind.CHART_OF_ACCOUNTS: "Планы счетов",
|
||||
NodeKind.CHART_OF_CALCULATION_TYPES: "Планы видов расчета",
|
||||
NodeKind.EXCHANGE_PLAN: "Планы обмена",
|
||||
NodeKind.EXTERNAL_DATA_SOURCE: "Внешние источники данных",
|
||||
NodeKind.BUSINESS_PROCESS: "Бизнес-процессы",
|
||||
NodeKind.TASK: "Задачи",
|
||||
NodeKind.SUBSYSTEM: "Подсистемы",
|
||||
NodeKind.SEQUENCE: "Последовательности",
|
||||
NodeKind.DOCUMENT_NUMERATOR: "Нумераторы документов",
|
||||
NodeKind.EVENT_SUBSCRIPTION: "Подписки на события",
|
||||
NodeKind.SESSION_PARAMETER: "Параметры сеанса",
|
||||
NodeKind.COMMON_ATTRIBUTE: "Общие реквизиты",
|
||||
NodeKind.FILTER_CRITERION: "Критерии отбора",
|
||||
NodeKind.FUNCTIONAL_OPTION: "Функциональные опции",
|
||||
NodeKind.FUNCTIONAL_OPTION_PARAMETER: "Параметры функциональных опций",
|
||||
NodeKind.DEFINED_TYPE: "Определяемые типы",
|
||||
NodeKind.SETTINGS_STORAGE: "Хранилища настроек",
|
||||
NodeKind.COMMON_COMMAND: "Общие команды",
|
||||
NodeKind.COMMAND_GROUP: "Группы команд",
|
||||
NodeKind.COMMON_FORM: "Общие формы",
|
||||
NodeKind.COMMON_LAYOUT: "Общие макеты",
|
||||
NodeKind.COMMON_PICTURE: "Общие картинки",
|
||||
NodeKind.WEB_SERVICE: "Web-сервисы",
|
||||
NodeKind.WS_REFERENCE: "WS-ссылки",
|
||||
NodeKind.WEBSOCKET_CLIENT: "WebSocket-клиенты",
|
||||
NodeKind.INTEGRATION_SERVICE: "Сервисы интеграции",
|
||||
NodeKind.BOT: "Боты",
|
||||
NodeKind.INTERFACE: "Интерфейсы",
|
||||
NodeKind.FULL_TEXT_SEARCH_DICTIONARY: "Словари полнотекстового поиска",
|
||||
NodeKind.PALETTE_COLOR: "Цвета палитры",
|
||||
NodeKind.STYLE_ITEM: "Элементы стиля",
|
||||
NodeKind.STYLE: "Стили",
|
||||
NodeKind.LANGUAGE: "Языки",
|
||||
NodeKind.HTTP_SERVICE: "HTTP-сервисы",
|
||||
NodeKind.INTEGRATION_ENDPOINT: "Интеграции",
|
||||
NodeKind.SCHEDULED_JOB: "Регламентные задания",
|
||||
|
||||
@@ -19,6 +19,10 @@ _EVENT_SUBSCRIPTION_KIND = getattr(NodeKind, "EVENT_SUBSCRIPTION", None)
|
||||
_METADATA_ICON_BY_NODE_KIND = {
|
||||
NodeKind.EXCHANGE_PLAN: "exchange-plan",
|
||||
NodeKind.SCHEDULED_JOB: "scheduled-job",
|
||||
NodeKind.SUBSYSTEM: "subsystem",
|
||||
NodeKind.SEQUENCE: "sequence",
|
||||
NodeKind.DOCUMENT_NUMERATOR: "numbering",
|
||||
NodeKind.EVENT_SUBSCRIPTION: "event",
|
||||
NodeKind.ATTRIBUTE: "attribute",
|
||||
NodeKind.COMMAND: "command",
|
||||
NodeKind.FORM: "form",
|
||||
@@ -52,6 +56,36 @@ _METADATA_SPEC_PREFIXES = {
|
||||
"EXCHANGE_PLAN": "ПланОбмена.",
|
||||
"EVENT_SUBSCRIPTION": "ПодпискаНаСобытие.",
|
||||
"SCHEDULED_JOB": "РегламентноеЗадание.",
|
||||
"SUBSYSTEM": "Подсистема.",
|
||||
"ROLE": "Роль.",
|
||||
"SEQUENCE": "Последовательность.",
|
||||
"DOCUMENT_NUMERATOR": "НумераторДокументов.",
|
||||
"EXTENSION": "Расширение.",
|
||||
"SESSION_PARAMETER": "ПараметрСеанса.",
|
||||
"COMMON_ATTRIBUTE": "ОбщийРеквизит.",
|
||||
"FILTER_CRITERION": "КритерийОтбора.",
|
||||
"FUNCTIONAL_OPTION": "ФункциональнаяОпция.",
|
||||
"FUNCTIONAL_OPTION_PARAMETER": "ПараметрФункциональнойОпции.",
|
||||
"DEFINED_TYPE": "ОпределяемыйТип.",
|
||||
"SETTINGS_STORAGE": "ХранилищеНастроек.",
|
||||
"COMMON_COMMAND": "ОбщаяКоманда.",
|
||||
"COMMAND_GROUP": "ГруппаКоманд.",
|
||||
"COMMON_FORM": "ОбщаяФорма.",
|
||||
"COMMON_LAYOUT": "ОбщийМакет.",
|
||||
"COMMON_PICTURE": "ОбщаяКартинка.",
|
||||
"XDTO_PACKAGE": "XDTO.",
|
||||
"WEB_SERVICE": "WebСервис.",
|
||||
"HTTP_SERVICE": "HTTPСервис.",
|
||||
"WS_REFERENCE": "WSСсылка.",
|
||||
"WEBSOCKET_CLIENT": "WebSocketКлиент.",
|
||||
"INTEGRATION_SERVICE": "СервисИнтеграции.",
|
||||
"BOT": "Бот.",
|
||||
"INTERFACE": "Интерфейс.",
|
||||
"FULL_TEXT_SEARCH_DICTIONARY": "СловарьПолнотекстовогоПоиска.",
|
||||
"PALETTE_COLOR": "ЦветПалитры.",
|
||||
"STYLE_ITEM": "ЭлементСтиля.",
|
||||
"STYLE": "Стиль.",
|
||||
"LANGUAGE": "Язык.",
|
||||
}
|
||||
|
||||
|
||||
@@ -67,6 +101,36 @@ _METADATA_SPEC_NODE_KINDS = {
|
||||
"TASK": {NodeKind.TASK},
|
||||
"EXCHANGE_PLAN": {NodeKind.EXCHANGE_PLAN},
|
||||
"SCHEDULED_JOB": {NodeKind.SCHEDULED_JOB},
|
||||
"SUBSYSTEM": {NodeKind.SUBSYSTEM},
|
||||
"ROLE": {NodeKind.ROLE},
|
||||
"SEQUENCE": {NodeKind.SEQUENCE},
|
||||
"DOCUMENT_NUMERATOR": {NodeKind.DOCUMENT_NUMERATOR},
|
||||
"EXTENSION": {NodeKind.EXTENSION},
|
||||
"SESSION_PARAMETER": {NodeKind.SESSION_PARAMETER},
|
||||
"COMMON_ATTRIBUTE": {NodeKind.COMMON_ATTRIBUTE},
|
||||
"FILTER_CRITERION": {NodeKind.FILTER_CRITERION},
|
||||
"FUNCTIONAL_OPTION": {NodeKind.FUNCTIONAL_OPTION},
|
||||
"FUNCTIONAL_OPTION_PARAMETER": {NodeKind.FUNCTIONAL_OPTION_PARAMETER},
|
||||
"DEFINED_TYPE": {NodeKind.DEFINED_TYPE},
|
||||
"SETTINGS_STORAGE": {NodeKind.SETTINGS_STORAGE},
|
||||
"COMMON_COMMAND": {NodeKind.COMMON_COMMAND},
|
||||
"COMMAND_GROUP": {NodeKind.COMMAND_GROUP},
|
||||
"COMMON_FORM": {NodeKind.COMMON_FORM},
|
||||
"COMMON_LAYOUT": {NodeKind.COMMON_LAYOUT},
|
||||
"COMMON_PICTURE": {NodeKind.COMMON_PICTURE},
|
||||
"XDTO_PACKAGE": {NodeKind.XDTO_PACKAGE},
|
||||
"WEB_SERVICE": {NodeKind.WEB_SERVICE},
|
||||
"HTTP_SERVICE": {NodeKind.HTTP_SERVICE},
|
||||
"WS_REFERENCE": {NodeKind.WS_REFERENCE},
|
||||
"WEBSOCKET_CLIENT": {NodeKind.WEBSOCKET_CLIENT},
|
||||
"INTEGRATION_SERVICE": {NodeKind.INTEGRATION_SERVICE},
|
||||
"BOT": {NodeKind.BOT},
|
||||
"INTERFACE": {NodeKind.INTERFACE},
|
||||
"FULL_TEXT_SEARCH_DICTIONARY": {NodeKind.FULL_TEXT_SEARCH_DICTIONARY},
|
||||
"PALETTE_COLOR": {NodeKind.PALETTE_COLOR},
|
||||
"STYLE_ITEM": {NodeKind.STYLE_ITEM},
|
||||
"STYLE": {NodeKind.STYLE},
|
||||
"LANGUAGE": {NodeKind.LANGUAGE},
|
||||
}
|
||||
if _EVENT_SUBSCRIPTION_KIND is not None:
|
||||
_METADATA_SPEC_NODE_KINDS["EVENT_SUBSCRIPTION"] = {_EVENT_SUBSCRIPTION_KIND}
|
||||
|
||||
@@ -1471,6 +1471,8 @@ def test_import_supports_structure_only_indexing(tmp_path: Path):
|
||||
<Configuration>
|
||||
<HTTPService name="ПубличныйAPI" qualifiedName="HTTPСервис.ПубличныйAPI" />
|
||||
<Subsystem name="Продажи" qualifiedName="Подсистема.Продажи" />
|
||||
<Sequence name="ПроведениеДокументов" qualifiedName="Последовательность.ПроведениеДокументов" />
|
||||
<DocumentNumerator name="ОбщийНумератор" qualifiedName="НумераторДокументов.ОбщийНумератор" />
|
||||
<Role name="Менеджер" qualifiedName="Роль.Менеджер">
|
||||
<Right object="HTTPСервис.ПубличныйAPI" read="true" />
|
||||
</Role>
|
||||
@@ -1491,7 +1493,7 @@ def test_import_supports_structure_only_indexing(tmp_path: Path):
|
||||
assert payload["status"] == "structure_indexed"
|
||||
assert payload["snapshot"]["project_id"] == project_id
|
||||
assert payload["object_count"] >= 2
|
||||
assert payload["normalized_summary"]["group_count"] >= 3
|
||||
assert payload["normalized_summary"]["group_count"] >= 5
|
||||
assert payload["normalized_summary"]["rights_count"] == 1
|
||||
|
||||
setup = client.get(f"/projects/{project_id}/setup")
|
||||
@@ -1513,7 +1515,7 @@ def test_import_supports_structure_only_indexing(tmp_path: Path):
|
||||
normalized = client.get(f"/projects/{project_id}/normalized")
|
||||
assert normalized.status_code == 200
|
||||
groups = {group["name"] for group in normalized.json()["configuration"]["groups"]}
|
||||
assert {"HTTP-сервисы", "Подсистемы", "Роли"}.issubset(groups)
|
||||
assert {"HTTP-сервисы", "Подсистемы", "Роли", "Последовательности", "Нумераторы документов"}.issubset(groups)
|
||||
|
||||
detail = client.get(
|
||||
f"/projects/{project_id}/normalized/object",
|
||||
@@ -1535,7 +1537,8 @@ def test_import_supports_structure_only_indexing(tmp_path: Path):
|
||||
]
|
||||
main_configuration = root["children"][0]
|
||||
common = next(item for item in main_configuration["children"] if item["label"] == "Общие")
|
||||
assert any(item["label"] == "HTTP-сервисы" for item in common["children"])
|
||||
common_labels = {item["label"] for item in common["children"]}
|
||||
assert {"HTTP-сервисы", "Подсистемы", "Последовательности", "Нумераторы документов"}.issubset(common_labels)
|
||||
|
||||
|
||||
def test_import_full_replace_replaces_current_normalized_project(tmp_path: Path):
|
||||
|
||||
Reference in New Issue
Block a user