Загрузка данных


мод фо тест
    offset: float


class SuiteTuIdentityMixin:
    """
    Идентификация ТУ для WS-тестов и legacy-стенда.

    Вынесено из @dataclass: иначе Pyright/PyCharm видят property как () -> T.
    Поля technological_unit, use_lds_configurator, admin_tu, resolved_tu_id
    объявляются в BaseSuiteConfig.
    """

    technological_unit: TU
    use_lds_configurator: bool
    admin_tu: Optional[AdminTU]
    resolved_tu_id: Optional[int]

    @property
    def admin_tu_name(self) -> str:
        """tuName для поиска ТУ в Администрировании."""
        if self.admin_tu is None:
            return ""
        return self.admin_tu.admin_name

    @property
    def legacy_tu_id(self) -> int:
        """Legacy id ТУ для имитатора, tags.txt и конфигурации стенда."""
        return self.technological_unit.id

    @property
    def legacy_tu_name(self) -> str:
        """Legacy имя ТУ из enum TU."""
        return self.technological_unit.description

    @property
    def tu_name(self) -> str:
        """Имя ТУ для WS-тестов и отчётов: admin при configurator, иначе legacy."""
        if self.use_lds_configurator:
            if self.admin_tu is None:
                return ""
            return self.admin_tu.admin_name
        return self.technological_unit.description

    @property
    def tu_id(self) -> int:
        """ID ТУ для WS-тестов: resolved из Администрирования при configurator, иначе legacy."""
        if self.use_lds_configurator:
            if self.resolved_tu_id is None:
                raise RuntimeError(
                    "resolved_tu_id не установлен - выполнить lds_configurator_admin_setup "
                    "перед операциями Администрирования"
                )
            return self.resolved_tu_id
        return self.technological_unit.id

    @property
    def configurator_tu_id(self) -> int:
        """tuId из Администрирования после infra setup (LaunchLds/StopLds)."""
        if self.resolved_tu_id is None:
            raise RuntimeError(
                "resolved_tu_id не установлен - выполнить lds_configurator_admin_setup "
                "перед операциями Администрирования"
            )
        return self.resolved_tu_id

    @property
    def infra_tu_id(self) -> int:
        """Алиас legacy_tu_id (обратная совместимость)."""
        return self.technological_unit.id




удалить:
 # ===== Свойства для удобства =====
    @property
    def admin_tu_name(self) -> str:
        """tuName для поиска ТУ в Администрировании."""
        if self.admin_tu is None:
            return ""
        return self.admin_tu.admin_name

    @property
    def legacy_tu_id(self) -> int:
        """Legacy id ТУ для имитатора, tags.txt и конфигурации стенда."""
        return self.technological_unit.id

    @property
    def legacy_tu_name(self) -> str:
        """Legacy имя ТУ из enum TU."""
        return self.technological_unit.description

    @property
    def tu_name(self) -> str:
        """Имя ТУ для WS-тестов и отчётов: admin при configurator, иначе legacy."""
        if self.use_lds_configurator:
            return self.admin_tu_name
        return self.legacy_tu_name

    @property
    def tu_id(self) -> int:
        """ID ТУ для WS-тестов: resolved из Администрирования при configurator, иначе legacy."""
        if self.use_lds_configurator:
            return self.configurator_tu_id
        return self.legacy_tu_id

    @property
    def configurator_tu_id(self) -> int:
        """tuId из Администрирования после infra setup (LaunchLds/StopLds)."""
        if self.resolved_tu_id is None:
            raise RuntimeError(
                "resolved_tu_id не установлен — выполните lds_configurator_admin_setup перед операциями Администрирования"
            )
        return self.resolved_tu_id

    @property
    def infra_tu_id(self) -> int:
        """Алиас legacy_tu_id (обратная совместимость)."""
        return self.legacy_tu_id