Use shared item axis context in role routes

This commit is contained in:
2026-06-27 18:18:47 +02:00
parent 867916ee51
commit 6a65f7d35c
11 changed files with 100 additions and 52 deletions
+34
View File
@@ -3439,6 +3439,22 @@ def smoke_row_role_graph_policy() -> None:
pov_route.role_graph.startswith("First-person POV from Man A;"),
"Role graph route did not prepend POV role graph directive",
)
structured_axis_route = row_role_graph.resolve_role_graph_route(
rng=random.Random(54),
subcategory={"slug": "oral", "name": "Oral"},
context=context,
item_axis_values={
"position": {"text": "standing oral position"},
"oral_act": ["blowjob", "auto"],
"contact_detail": {"unused": "mouth contact at hip height"},
},
pov_character_labels=[],
is_pose_category=False,
)
_expect(
"kneels in front" in structured_axis_route.source_role_graph,
"Role graph route should read structured/list axis values through item_axis_policy",
)
def smoke_row_assembly_policy() -> None:
@@ -5876,6 +5892,24 @@ def smoke_pair_route_policy() -> None:
partial_common = {**clothing_common, "mode": "partially_removed"}
partial_route = pair_clothing.resolve_hardcore_pair_clothing_result(**partial_common)
_expect(partial_route.requires_body_exposure_scene is True, "Partial lower-access clothing should request scene cleanup")
structured_axis_clothing = pair_clothing.resolve_hardcore_pair_clothing_result(
**{
**clothing_common,
"hard_row": {
"role_graph": "generic adult action",
"item": "generic configured action",
"item_axis_values": {
"position": {"text": "edge-supported penetration"},
"leg_detail": ["thighs open", "auto"],
},
},
"mode": "partially_removed",
}
)
_expect(
structured_axis_clothing.woman_access == "lower",
"Pair clothing should read structured/list axis values for lower-access detection",
)
oral_common = {
**clothing_common,
"hard_row": {