Files
Artificial-Sweetener-Simple…/tests/test_seed_node.py
T

45 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 reusable Seed ComfyUI node."""
from __future__ import annotations
from typing import Any
from simple_syrup.nodes.seed import Seed
def test_seed_node_contract_constants() -> None:
"""Seed node exposes the intended ComfyUI output contract."""
assert Seed.RETURN_TYPES == ("INT",)
assert Seed.RETURN_NAMES == ("seed",)
assert Seed.FUNCTION == "execute"
assert Seed.CATEGORY == "SimpleSyrup/Utilities"
def test_seed_node_declares_native_seed_input() -> None:
"""Seed input uses ComfyUI's native seed widget metadata."""
input_types: dict[str, dict[str, tuple[Any, ...]]] = Seed.INPUT_TYPES()
required = input_types["required"]
assert tuple(required) == ("seed",)
seed_input = required["seed"]
assert seed_input[0] == "INT"
metadata = seed_input[1]
assert metadata["default"] == 0
assert metadata["min"] == 0
assert metadata["max"] == 0xFFFFFFFFFFFFFFFF
assert metadata["control_after_generate"] is True
def test_seed_node_returns_seed_unchanged() -> None:
"""Execution returns the selected seed value without modification."""
assert Seed().execute(123) == (123,)