Fix input preview hash -> cid key mismatch
Template uses inp.cid and input.cid but router created previews with 'hash' key. Fixed both input_previews and run_inputs to use 'cid'. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -278,7 +278,7 @@ async def get_run(
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
run_inputs.append({
|
run_inputs.append({
|
||||||
"hash": input_hash,
|
"cid": input_hash,
|
||||||
"name": f"Input {i + 1}",
|
"name": f"Input {i + 1}",
|
||||||
"media_type": media_type,
|
"media_type": media_type,
|
||||||
})
|
})
|
||||||
@@ -407,7 +407,7 @@ async def list_runs(
|
|||||||
inputs = run.get("inputs", [])
|
inputs = run.get("inputs", [])
|
||||||
if isinstance(inputs, list):
|
if isinstance(inputs, list):
|
||||||
for input_hash in inputs[:3]:
|
for input_hash in inputs[:3]:
|
||||||
preview = {"hash": input_hash, "media_type": None}
|
preview = {"cid": input_hash, "media_type": None}
|
||||||
try:
|
try:
|
||||||
cache_path = cache_manager.get_by_cid(input_hash)
|
cache_path = cache_manager.get_by_cid(input_hash)
|
||||||
if cache_path and cache_path.exists():
|
if cache_path and cache_path.exists():
|
||||||
|
|||||||
@@ -36,6 +36,33 @@ class TestCacheNotFoundTemplate:
|
|||||||
"Route should pass cid=cid to not_found.html template"
|
"Route should pass cid=cid to not_found.html template"
|
||||||
|
|
||||||
|
|
||||||
|
class TestInputPreviewsDataStructure:
|
||||||
|
"""Tests for input_previews dict keys matching template expectations."""
|
||||||
|
|
||||||
|
def test_run_card_template_expects_inp_cid(self) -> None:
|
||||||
|
"""Run card template uses inp.cid for input previews."""
|
||||||
|
path = Path('/home/giles/art/art-celery/app/templates/runs/_run_card.html')
|
||||||
|
content = path.read_text()
|
||||||
|
|
||||||
|
assert 'inp.cid' in content, \
|
||||||
|
"Run card template should use inp.cid for input previews"
|
||||||
|
|
||||||
|
def test_input_previews_use_cid_key(self) -> None:
|
||||||
|
"""
|
||||||
|
Regression test: input_previews must use 'cid' key not 'hash'.
|
||||||
|
|
||||||
|
Bug: Router created input_previews with 'hash' key but template expected 'cid'.
|
||||||
|
"""
|
||||||
|
path = Path('/home/giles/art/art-celery/app/routers/runs.py')
|
||||||
|
content = path.read_text()
|
||||||
|
|
||||||
|
# Should have: "cid": input_hash, not "hash": input_hash
|
||||||
|
assert '"cid": input_hash' in content, \
|
||||||
|
"input_previews should use 'cid' key"
|
||||||
|
assert '"hash": input_hash' not in content, \
|
||||||
|
"input_previews should not use 'hash' key (template expects 'cid')"
|
||||||
|
|
||||||
|
|
||||||
class TestArtifactDataStructure:
|
class TestArtifactDataStructure:
|
||||||
"""Tests for artifact dict keys matching template expectations."""
|
"""Tests for artifact dict keys matching template expectations."""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user