Files
dify/api/core/dify_builder/testdata.py
T

25 lines
996 B
Python

"""Shared fixture admission seam for authorized Builder test-data handlers."""
from core.dify_builder.contract import decode_testdata_http_fixtures
from core.dify_builder.execution_policy import HttpFixtureSetV1
from core.dify_builder.models import Turn
from core.dify_builder.ports import DifyPort
def stamp_testdata_http_fixtures(dify: DifyPort, *, app_id: str, turn: Turn) -> HttpFixtureSetV1 | None:
"""Decode public fixtures and stamp against the exact submitted revision.
Absence leaves historical input-only behavior intact. The existing port
owns authorization, current raw metadata admission and revision lineage.
"""
action = turn.action
fixtures = decode_testdata_http_fixtures(action.payload if action is not None else {})
if fixtures is None:
return None
return dify.stamp_http_fixtures(
app_id,
turn.actor,
base_app_revision=action.base_app_revision if action is not None else "",
fixtures=fixtures,
)