Validate item template formatter hints
This commit is contained in:
@@ -119,6 +119,7 @@ def _expect_custom_row(row: dict[str, Any], name: str) -> None:
|
||||
_expect_text(f"{name}.composition", row.get("composition"), 8)
|
||||
_expect_text(f"{name}.role_graph", row.get("source_role_graph") or row.get("role_graph"), 8)
|
||||
_expect(isinstance(row.get("item_axis_values"), dict), f"{name}.item_axis_values missing")
|
||||
_expect(isinstance(row.get("formatter_hints"), dict), f"{name}.formatter_hints missing")
|
||||
|
||||
|
||||
def _expect_formatter_outputs(row: dict[str, Any], name: str, *, target: str = "auto") -> None:
|
||||
@@ -400,6 +401,8 @@ def _fixture_hardcore_row(**overrides: Any) -> dict[str, Any]:
|
||||
"penetration_act": "full-body penetrative sex",
|
||||
"mouth_detail": "mouth close to the ear",
|
||||
},
|
||||
"item_template_metadata": {},
|
||||
"formatter_hints": {},
|
||||
"scene_text": "private studio room with warm light",
|
||||
"scene_kind": "explicit adult sex scene",
|
||||
"pose": "configured explicit pose",
|
||||
@@ -1195,6 +1198,11 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
"action_family": "oral",
|
||||
"position_family": "oral",
|
||||
"position_keys": ["kneeling", "open_thighs"],
|
||||
"formatter_hint": {
|
||||
"krea2": "keep mouth contact readable",
|
||||
"sdxl": ["oral contact", "kneeling oral"],
|
||||
"training_caption": "oral contact caption detail",
|
||||
},
|
||||
}
|
||||
],
|
||||
"item_axes": {
|
||||
@@ -1213,6 +1221,10 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
_expect(pb._template_position_family(template_metadata) == "oral", "Template metadata route lost position family")
|
||||
_expect(pb._template_position_keys(template_metadata) == ["kneeling", "open_thighs"], "Template metadata route lost position keys")
|
||||
_expect(pb._template_action_family(template_metadata) == "oral", "Template metadata route lost normalized action family")
|
||||
formatter_hints = pb._template_formatter_hints(template_metadata)
|
||||
_expect(formatter_hints.get("krea") == ["keep mouth contact readable"], "Template metadata route lost Krea formatter hint")
|
||||
_expect(formatter_hints.get("sdxl") == ["oral contact", "kneeling oral"], "Template metadata route lost SDXL formatter hints")
|
||||
_expect(formatter_hints.get("caption") == ["oral contact caption detail"], "Template metadata route lost caption formatter hint")
|
||||
_expect(
|
||||
pb._template_action_family(template_metadata) == category_template_metadata.template_action_family(template_metadata),
|
||||
"Prompt builder template action policy should delegate",
|
||||
@@ -1225,11 +1237,14 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
"action_family": "bad_action",
|
||||
"position_family": "bad_family",
|
||||
"position_keys": ["kneeling", "bad_position"],
|
||||
"formatter_hint": {"bad_route": 9, "sdxl": ["ok", ""]},
|
||||
}
|
||||
invalid_errors = category_template_metadata.template_metadata_errors(invalid_metadata)
|
||||
_expect(any("bad_action" in error for error in invalid_errors), "Template metadata validation missed bad action")
|
||||
_expect(any("bad_family" in error for error in invalid_errors), "Template metadata validation missed bad family")
|
||||
_expect(any("bad_position" in error for error in invalid_errors), "Template metadata validation missed bad position key")
|
||||
_expect(any("bad_route" in error for error in invalid_errors), "Template metadata validation missed bad formatter route")
|
||||
_expect(any("invalid formatter_hint" in error for error in invalid_errors), "Template metadata validation missed bad formatter hint value")
|
||||
|
||||
|
||||
def smoke_category_library_route() -> None:
|
||||
|
||||
Reference in New Issue
Block a user