Split manual hardcore action routing
This commit is contained in:
+12
-8
@@ -4906,7 +4906,7 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
"Template action-family normalizer should accept spaced aliases",
|
||||
)
|
||||
_expect(
|
||||
category_template_metadata.template_action_family({"action_family": "manual stimulation"}) == "foreplay",
|
||||
category_template_metadata.template_action_family({"action_family": "manual stimulation"}) == "manual",
|
||||
"Template action-family normalizer should accept subcategory-style aliases",
|
||||
)
|
||||
_expect(
|
||||
@@ -5115,7 +5115,7 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
{
|
||||
"name": "Inherited metadata route",
|
||||
"item_template_metadata": {
|
||||
"action_family": "foreplay",
|
||||
"action_family": "manual",
|
||||
"position_family": "manual",
|
||||
"position_keys": ["kneeling"],
|
||||
"formatter_hint": {"caption": "inherited caption cue"},
|
||||
@@ -5132,7 +5132,7 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
)
|
||||
_expect(inherited_text == "hand stimulation in kneeling manual position", "Inherited template metadata changed item text")
|
||||
_expect(inherited_axis_values == {"act": "hand stimulation", "position": "kneeling manual position"}, "Inherited template metadata lost axis values")
|
||||
_expect(inherited_metadata.get("action_family") == "foreplay", "String template did not inherit action family")
|
||||
_expect(inherited_metadata.get("action_family") == "manual", "String template did not inherit action family")
|
||||
_expect(inherited_metadata.get("position_family") == "manual", "String template did not inherit position family")
|
||||
_expect(pb._template_position_keys(inherited_metadata) == ["kneeling"], "String template did not inherit position keys")
|
||||
_expect(
|
||||
@@ -5145,7 +5145,7 @@ def smoke_hardcore_position_config_policy() -> None:
|
||||
{
|
||||
"name": "Override metadata route",
|
||||
"item_template_metadata": {
|
||||
"action_family": "foreplay",
|
||||
"action_family": "manual",
|
||||
"position_family": "manual",
|
||||
"formatter_hint": {"all": "inherited shared cue"},
|
||||
},
|
||||
@@ -5343,7 +5343,7 @@ def smoke_row_route_metadata_policy() -> None:
|
||||
item_axis_values={"position": "kneeling manual position"},
|
||||
)
|
||||
_expect(fallback["position_family"] == "manual", "Route policy lost source position-family fallback")
|
||||
_expect(fallback["action_family"] == "foreplay", "Route policy lost source action-family fallback")
|
||||
_expect(fallback["action_family"] == "manual", "Route policy lost source action-family fallback")
|
||||
_expect("kneeling" in fallback["position_keys"], "Route policy lost inferred position key")
|
||||
|
||||
empty = row_route_metadata.resolve_action_position_route(
|
||||
@@ -5519,7 +5519,7 @@ def smoke_hardcore_category_routes() -> None:
|
||||
cases = [
|
||||
("hardcore_penetration", "Penetrative sex", "penetration_only", "penetrative", {"penetration", "default"}, "penetrative sex", "penetrative action"),
|
||||
("hardcore_oral", "Oral sex", "oral_only", "oral", {"oral"}, "oral sex", "oral action"),
|
||||
("hardcore_manual", "Manual stimulation", "manual_only", "manual", {"foreplay", "outercourse"}, "manual stimulation", "manual action"),
|
||||
("hardcore_manual", "Manual stimulation", "manual_only", "manual", {"manual"}, "manual stimulation", "manual action"),
|
||||
("hardcore_outercourse", "Outercourse and genital teasing", "outercourse_only", "outercourse", {"outercourse"}, "outercourse", "non-penetrative action"),
|
||||
("hardcore_foreplay", "Foreplay and teasing", "foreplay_only", "foreplay", {"foreplay"}, "foreplay", "foreplay action"),
|
||||
("hardcore_aftercare", "Aftercare and cleanup", "interaction_only", "interaction", {"foreplay"}, "interaction", "interaction beat"),
|
||||
@@ -6938,7 +6938,11 @@ def smoke_interaction_role_graph_routes() -> None:
|
||||
hardcore_position_config=_position_filter(focus, family, [position_key]),
|
||||
)
|
||||
_expect_custom_row(row, name)
|
||||
_expect(row.get("action_family") == "foreplay", f"{name} action_family should stay formatter foreplay")
|
||||
expected_action_family = "manual" if family == "manual" else "foreplay"
|
||||
_expect(
|
||||
row.get("action_family") == expected_action_family,
|
||||
f"{name} action_family mismatch: {row.get('action_family')} != {expected_action_family}",
|
||||
)
|
||||
_expect(row.get("position_family") == family, f"{name} position_family mismatch: {row.get('position_family')}")
|
||||
_expect(position_key in (row.get("position_keys") or []), f"{name} lost position key {position_key!r}")
|
||||
role_graph = _expect_text(f"{name}.source_role_graph", row.get("source_role_graph"), 40).lower()
|
||||
@@ -7131,7 +7135,7 @@ def smoke_formatter_metadata_fixtures() -> None:
|
||||
"Woman A reclines with thighs open while Man A's hand is between her legs, "
|
||||
"fingers visibly stimulating her pussy."
|
||||
),
|
||||
action_family="foreplay",
|
||||
action_family="manual",
|
||||
position_family="manual",
|
||||
position_key="fingering",
|
||||
position_keys=["fingering", "open_thighs"],
|
||||
|
||||
Reference in New Issue
Block a user