test: 19 юнит-тестов (converter + state_machine) — все PASS

This commit is contained in:
2026-07-31 20:38:48 +04:00
parent 4e136cd1df
commit 760d16ee61
4 changed files with 360 additions and 5 deletions
+10 -1
View File
@@ -165,13 +165,22 @@ def _convert_operations(operations):
# ---------------------------------------------------------------------------
def convert_service(stands_yaml_path):
"""Читает STANDS YAML, возвращает polygon-конфиг как dict."""
"""Читает STANDS YAML из файла, возвращает polygon-конфиг как dict."""
with open(stands_yaml_path, "r", encoding="utf-8") as f:
raw = yaml.safe_load(f)
if not raw:
return None
return convert_service_from_dict(raw)
def convert_service_from_dict(raw):
"""Конвертирует STANDS YAML (уже распарсенный dict) → polygon-конфиг.
Отдельная функция для тестов — не требует файла.
"""
out = {}
# 1. Поля верхнего уровня (1:1)
+5 -4
View File
@@ -145,9 +145,10 @@ def _merge_params(inst, op_params, svc_operation_id, services):
def _extract_subresource_name(op_params, subresource_name):
"""Извлечь имя subresource-объекта из параметров операции.
Например для create_user: ищем параметр с кодом "username" или "user".
Если не нашли — используем "default".
Ищет первое непустое строковое значение в op_params.
Если не нашли — fallback на subresource_name.
"""
# Ищем по коду параметра (нужен доступ к cfsParams, но здесь у нас только op_params по id)
# Простой fallback: имя subresource
for val in op_params.values():
if isinstance(val, str) and val.strip():
return val
return subresource_name