Files
Artificial-Sweetener-Simple…/tests/segmentation/detection/test_layerstyle_sam_models_adapter_node.py
T

40 lines
1.3 KiB
Python

# SimpleSyrup - workflow-focused ComfyUI extensions for image generation
# Copyright (C) 2026 Artificial Sweetener and contributors
# SPDX-License-Identifier: AGPL-3.0-or-later
"""Tests for the LayerStyle SAM models adapter node."""
from __future__ import annotations
import pytest
from simple_syrup.nodes.layerstyle_sam_models_adapter import LayerStyleSAMModelsAdapter
def test_layerstyle_adapter_contract() -> None:
"""Adapter splits LayerStyle bundles into conventional sockets."""
assert LayerStyleSAMModelsAdapter.RETURN_TYPES == ("SAM_MODEL", "DINO_MODEL")
assert LayerStyleSAMModelsAdapter.RETURN_NAMES == ("sam_model", "dino_model")
assert LayerStyleSAMModelsAdapter.INPUT_TYPES()["required"]["sam_models"][0] == (
"LS_SAM_MODELS"
)
def test_layerstyle_adapter_returns_bundle_members() -> None:
"""Adapter returns SAM and DINO objects from the bundle."""
sam = object()
dino = object()
result = LayerStyleSAMModelsAdapter().adapt({"SAM_MODEL": sam, "DINO_MODEL": dino})
assert result == (sam, dino)
def test_layerstyle_adapter_rejects_invalid_bundle() -> None:
"""Invalid LayerStyle bundles fail clearly."""
with pytest.raises(ValueError, match="SAM_MODEL and DINO_MODEL"):
LayerStyleSAMModelsAdapter().adapt({"SAM_MODEL": object()})