feat: initial release

This commit is contained in:
Artificial Sweetener
2026-05-22 15:41:49 -04:00
commit 4b6525ce6f
276 changed files with 62039 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# 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 Scale Factor node contract."""
from __future__ import annotations
from simple_syrup.nodes import tooltips
from simple_syrup.nodes.scale_factor import ScaleFactor, scale_factor_options
def test_scale_factor_options_returns_fresh_bounded_metadata() -> None:
"""Scale-factor widget options expose bounded FLOAT metadata."""
first_options = scale_factor_options()
second_options = scale_factor_options(default=1.0)
assert first_options is not second_options
assert first_options["default"] == 1.5
assert first_options["min"] == 1.0
assert first_options["max"] == 5.0
assert first_options["step"] == 0.1
assert isinstance(first_options["tooltip"], str)
assert first_options["tooltip"]
assert second_options["default"] == 1.0
def test_scale_factor_node_contract() -> None:
"""Scale Factor exposes a bounded FLOAT primitive contract."""
inputs = ScaleFactor.INPUT_TYPES()
value_type, value_options = inputs["required"]["value"]
assert ScaleFactor.RETURN_TYPES == ("FLOAT",)
assert ScaleFactor.RETURN_NAMES == ("scale_factor",)
assert ScaleFactor.FUNCTION == "get_value"
assert ScaleFactor.CATEGORY == "SimpleSyrup/Primitives"
assert ScaleFactor.DESCRIPTION == "Provides a bounded multiplier for scaling."
assert len(ScaleFactor.OUTPUT_TOOLTIPS) == 1
assert ScaleFactor.OUTPUT_TOOLTIPS[0] == (
"Multiplier used to scale a connected target."
)
assert list(inputs["required"]) == ["value"]
assert value_type == "FLOAT"
assert value_options["default"] == 1.5
assert value_options["min"] == 1.0
assert value_options["max"] == 5.0
assert value_options["step"] == 0.1
assert value_options["tooltip"] == tooltips.SCALE_FACTOR_VALUE
def test_scale_factor_node_returns_float_value() -> None:
"""Scale Factor returns the provided value as a FLOAT output."""
assert ScaleFactor().get_value("2.5") == (2.5,)