test: 19 юнит-тестов (converter + state_machine) — все PASS
This commit is contained in:
+10
-1
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user