Skip to content

Commit d2221f7

Browse files
bokelleyclaude
andcommitted
fix: update preview response parsing for PR #185 schema clarifications
PR #185 in adcp/adcp clarified the preview response structure: - preview_url and preview_html are now in renders[0], not directly on preview - Added preview_id and render_id fields for better identification - Updated both single-mode and batch-mode parsing to match new structure - Updated test mocks to reflect new schema structure All 106 tests passing ✅ 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent e9d3a23 commit d2221f7

File tree

2 files changed

+23
-16
lines changed

2 files changed

+23
-16
lines changed

src/adcp/utils/preview_cache.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,18 @@ async def get_preview_data_for_manifest(
8080

8181
if result.success and result.data and result.data.previews:
8282
preview = result.data.previews[0]
83+
renders = preview.get("renders", [])
84+
first_render = renders[0] if renders else {}
85+
8386
preview_data = {
84-
"preview_url": preview.get("preview_url"),
87+
"preview_id": preview.get("preview_id"),
88+
"preview_url": first_render.get("preview_url"),
89+
"preview_html": first_render.get("preview_html"),
90+
"render_id": first_render.get("render_id"),
8591
"input": preview.get("input", {}),
8692
"expires_at": result.data.expires_at,
8793
}
8894

89-
if preview.get("renders"):
90-
preview_data["renders"] = preview["renders"]
91-
9295
self._preview_cache[cache_key] = preview_data
9396
return preview_data
9497

@@ -174,19 +177,13 @@ async def get_preview_data_batch(
174177
response = batch_result["response"]
175178
if response.get("previews"):
176179
preview = response["previews"][0]
177-
renders = preview.get("renders", [{}])
180+
renders = preview.get("renders", [])
178181
first_render = renders[0] if renders else {}
179182
preview_data = {
180-
"preview_url": (
181-
first_render.get("preview_url")
182-
if preview.get("renders")
183-
else None
184-
),
185-
"preview_html": (
186-
first_render.get("preview_html")
187-
if preview.get("renders")
188-
else None
189-
),
183+
"preview_id": preview.get("preview_id"),
184+
"preview_url": first_render.get("preview_url"),
185+
"preview_html": first_render.get("preview_html"),
186+
"render_id": first_render.get("render_id"),
190187
"input": preview.get("input", {}),
191188
"expires_at": response.get("expires_at"),
192189
}

tests/test_preview_html.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,17 @@ async def test_get_preview_data_for_manifest():
105105
# Parsed result from _parse_response
106106
mock_preview_response = PreviewCreativeResponse(
107107
previews=[
108-
{"preview_url": "https://preview.example.com/abc123", "input": {"name": "Desktop"}}
108+
{
109+
"preview_id": "preview-1",
110+
"renders": [
111+
{
112+
"render_id": "render-1",
113+
"preview_url": "https://preview.example.com/abc123",
114+
"preview_html": None,
115+
}
116+
],
117+
"input": {"name": "Desktop"},
118+
}
109119
],
110120
expires_at="2025-12-01T00:00:00Z",
111121
)

0 commit comments

Comments
 (0)