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:
|
||||
pass
|
||||
run_inputs.append({
|
||||
"hash": input_hash,
|
||||
"cid": input_hash,
|
||||
"name": f"Input {i + 1}",
|
||||
"media_type": media_type,
|
||||
})
|
||||
@@ -407,7 +407,7 @@ async def list_runs(
|
||||
inputs = run.get("inputs", [])
|
||||
if isinstance(inputs, list):
|
||||
for input_hash in inputs[:3]:
|
||||
preview = {"hash": input_hash, "media_type": None}
|
||||
preview = {"cid": input_hash, "media_type": None}
|
||||
try:
|
||||
cache_path = cache_manager.get_by_cid(input_hash)
|
||||
if cache_path and cache_path.exists():
|
||||
|
||||
@@ -36,6 +36,33 @@ class TestCacheNotFoundTemplate:
|
||||
"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:
|
||||
"""Tests for artifact dict keys matching template expectations."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user