Files
Claude 3adebb731f Rename FunPack to FunUI (5.0.3 Classy Chopper): /fun endpoint, wink logo, load-time migration of old names
Old project/workflow names and browser settings migrate on load; /funpack redirects to /fun.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016acRss69eH1235eRdFTZHY
2026-10-25 13:11:03 +00:00

28 lines
1.5 KiB
Python

from modules.output.save import upgrade
OUT = {"VAEDecode": ["IMAGE"], "Cut": ["IMAGE", "AUDIO"], "CreateVideo": ["VIDEO"], "SaveVideo": []}.get
def test_old_pair_becomes_one_save():
role = {"at": "project.video", "input": "fps", "drives": "fps"}
slots = [{"id": "cut", "node": "Cut", "inputs": {}},
{"id": "video", "node": "CreateVideo", "roles": [role], "inputs": {"images": ["cut", 0], "audio": ["cut", 1], "fps": 25.0}},
{"id": "save", "node": "SaveVideo", "inputs": {"video": ["video", 0], "filename_prefix": "X"}}]
got = upgrade(slots, lambda n: OUT(n) or [])
assert [s["id"] for s in got] == ["cut", "save"]
assert got[1] == {"id": "save", "node": "FunUISaveVideo", "roles": [role],
"inputs": {"filename_prefix": "X", "images": ["cut", 0], "audio": ["cut", 1], "fps": 25.0}}
assert slots[2]["node"] == "SaveVideo" # the caller's slots are left alone
def test_unfed_save_takes_the_loose_picture_source():
slots = [{"id": "cut", "node": "Cut", "inputs": {}}, {"id": "save", "node": "SaveVideo", "inputs": {}}]
got = upgrade(slots, lambda n: OUT(n) or [])
assert got[1]["inputs"] == {"filename_prefix": "FunUI", "images": ["cut", 0], "audio": ["cut", 1]}
def test_unfed_save_with_two_candidates_is_left_alone():
slots = [{"id": "a", "node": "Cut", "inputs": {}}, {"id": "b", "node": "VAEDecode", "inputs": {}},
{"id": "save", "node": "SaveVideo", "inputs": {}}]
assert upgrade(slots, lambda n: OUT(n) or [])[2]["node"] == "SaveVideo"