Files
JasonHoku-ComfyUI-Ultimate-…/tests/test_dist_meta.py
T
Jason HokuandClaude Fable 5.1 884c1d7ef5 fix(dist): distributed runs keep rejected-preview tombstones, job order and run settings in manifest meta
The distributed path overwrote meta with a short dict in four places, erasing
rejected_preview_fps and meta.session_settings.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-11-04 03:02:31 -08:00

47 lines
1.9 KiB
Python

"""The distributed path must keep tombstones / job order / run-API settings in manifest meta."""
import os
import sys
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import generation_orchestrator as go # preloaded by tests/conftest.py
from config_utils import run_meta_extras
def _meta(existing, **kw):
args = dict(positive_text="p", negative_text="n", ckpt_name="m.safetensors", seed=7, vae_batch_size=4,
configs_json="[]", resolutions_json="[]", image_format="webp", job_order="minimize_reloads",
preview_on=True, pv_steps=6, pv_scale=0.5, pv_cfg=None,
meta_run=run_meta_extras({"job_order": "minimize_reloads"}, False))
args.update(kw)
return go._distributed_run_meta(existing, **args)
def test_tombstones_survive():
m = _meta({"meta": {"rejected_preview_fps": ["a", "b"]}, "items": []})
assert m["rejected_preview_fps"] == ["a", "b"]
def test_no_previous_meta():
assert _meta({"items": []})["rejected_preview_fps"] == []
def test_job_order_preview_and_session_settings_kept():
m = _meta({"meta": None})
assert m["job_order"] == "minimize_reloads"
assert m["preview_pass"] == {"enabled": True, "steps": 6, "scale": 0.5, "cfg_override": None}
assert m["session_settings"] == {"job_order": "minimize_reloads"}
assert m["has_optional_inputs"] is False
assert m["seed"] == 7 and m["image_format"] == "webp"
def test_same_keys_as_normal_loop_literal():
"""The normal loop's final meta literal (generation_orchestrator) and this helper write the same keys."""
import re
src = open(go.__file__, encoding="utf-8").read()
i = src.index('existing_data["meta"] = {\n "positive": positive_text,')
block = src[i:src.index("**_meta_run", i)]
normal_keys = set(re.findall(r'^\s+"(\w+)":', block, re.M))
helper_keys = set(_meta({"items": []}).keys()) - set(run_meta_extras({}, False).keys())
assert normal_keys == helper_keys