diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2026-10-17 12:52:42 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2026-10-17 12:52:42 +0200 |
| commit | 5edb6e2fd048f369828984aaae6f7ce83d683201 (patch) | |
| tree | 50de87735605b4936d0378754c3d51602e8f0c20 /tests/test_helpers.py | |
| parent | 3f88638e4d1c380d730274f46bac6670b1c6a35e (diff) | |
| download | comfier-5edb6e2fd048f369828984aaae6f7ce83d683201.tar.xz comfier-5edb6e2fd048f369828984aaae6f7ce83d683201.zip | |
claude: improved dev-setup
Diffstat (limited to 'tests/test_helpers.py')
| -rw-r--r-- | tests/test_helpers.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/test_helpers.py b/tests/test_helpers.py new file mode 100644 index 0000000..0c0f875 --- /dev/null +++ b/tests/test_helpers.py @@ -0,0 +1,59 @@ +import json +import pathlib + +import pytest + +from comfier import Tools + +ROOT = pathlib.Path(__file__).parent.parent + + +@pytest.fixture +def tools(make_tools): # type: ignore[no-untyped-def] + return make_tools()[0] + + +def test_normalize_seed(tools: Tools) -> None: + assert tools._normalize_seed("42") == 42 + assert tools._normalize_seed("0x10") == 16 + assert tools._normalize_seed(7) == 7 + assert 0 <= tools._normalize_seed(None) < 1 << 63 + assert 0 <= tools._normalize_seed(-5) < 1 << 63 + assert tools._normalize_seed((1 << 63) + 3) == 3 + with pytest.raises(ValueError): + tools._normalize_seed("abc") + + +async def test_resolve_dimensions(tools: Tools) -> None: + assert await tools._resolve_dimensions("512X768") == (512, 768) + assert await tools._resolve_dimensions(None) == (1024, 1024) + with pytest.raises(ValueError): + await tools._resolve_dimensions("0x10") + with pytest.raises(ValueError): + await tools._resolve_dimensions("bogus") + + +def test_resolve_node_mappings(tools: Tools) -> None: + tools.valves.negative_prompt_node_ids = "1, 2,," + nodes = json.loads((ROOT / "fixtures" / "nodes.json").read_text()) + m = tools._resolve_node_mappings(nodes) + assert m["negative_prompt"]["node_ids"] == ["1", "2"] + assert m["positive_prompt"] == {"key": "value", "node_ids": ["520:506"]} + assert m["steps"]["node_ids"] == ["459:458"] + + +def test_apply_workflow_parameters(tools: Tools) -> None: + wf = json.loads((ROOT / "fixtures" / "workflow.json").read_text()) + m = tools._resolve_node_mappings( + json.loads((ROOT / "fixtures" / "nodes.json").read_text()) + ) + applied = tools._apply_workflow_parameters( + wf, m, {"seed": 9, "width": 64, "steps": None} + ) + assert wf["520:517"]["inputs"]["seed"] == 9 + assert wf["520:518"]["inputs"]["value"] == 64 + assert "steps" not in applied + with pytest.raises(KeyError): + tools._apply_workflow_parameters( + wf, {"seed": {"key": "seed", "node_ids": ["nope"]}}, {"seed": 1} + ) |
