Extract hardcore position nodes
This commit is contained in:
@@ -2012,6 +2012,53 @@ def smoke_node_character_registration() -> None:
|
||||
_expect(json.loads(loaded_profile[0]).get("profile_type") == "character", "Profile Load returned wrong profile type")
|
||||
|
||||
|
||||
def smoke_node_hardcore_position_registration() -> None:
|
||||
required_nodes = [
|
||||
"SxCPHardcorePositionPool",
|
||||
"SxCPHardcoreActionFilter",
|
||||
]
|
||||
for node_name in required_nodes:
|
||||
_expect(node_name in sxcp_nodes.NODE_CLASS_MAPPINGS, f"{node_name} missing from node registry")
|
||||
_expect(node_name in sxcp_nodes.NODE_DISPLAY_NAME_MAPPINGS, f"{node_name} missing from display registry")
|
||||
|
||||
position_node = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPHardcorePositionPool"]
|
||||
position_inputs = position_node.INPUT_TYPES().get("required") or {}
|
||||
_expect("family" in position_inputs, "Hardcore Position Pool lost family input")
|
||||
_expect("tooltip" in position_inputs["family"][1], "Hardcore Position Pool tooltip injection missing")
|
||||
pool_config, pool_summary = position_node().build(
|
||||
"replace",
|
||||
"oral",
|
||||
"",
|
||||
include_boobjob=True,
|
||||
include_handjob=True,
|
||||
)
|
||||
parsed_pool = json.loads(pool_config)
|
||||
_expect(parsed_pool.get("family") == "oral", "Hardcore Position Pool lost selected family")
|
||||
_expect(parsed_pool.get("positions") == ["boobjob", "handjob"], "Hardcore Position Pool lost selected positions")
|
||||
_expect("positions=boobjob,handjob" in pool_summary, "Hardcore Position Pool summary changed unexpectedly")
|
||||
|
||||
filter_config, filter_summary = sxcp_nodes.NODE_CLASS_MAPPINGS["SxCPHardcoreActionFilter"]().build(
|
||||
"outercourse_only",
|
||||
False,
|
||||
False,
|
||||
False,
|
||||
True,
|
||||
True,
|
||||
True,
|
||||
False,
|
||||
True,
|
||||
False,
|
||||
False,
|
||||
pool_config,
|
||||
)
|
||||
parsed_filter = json.loads(filter_config)
|
||||
_expect(parsed_filter.get("family") == "outercourse", "Hardcore Action Filter did not apply focus family")
|
||||
_expect(parsed_filter.get("positions") == ["boobjob", "handjob"], "Hardcore Action Filter lost incoming positions")
|
||||
_expect(parsed_filter.get("allow_penetration") is False, "Hardcore Action Filter did not block penetration")
|
||||
_expect(parsed_filter.get("allow_outercourse") is True, "Hardcore Action Filter should allow outercourse")
|
||||
_expect("blocked=" in filter_summary, "Hardcore Action Filter summary lost blocked-gate details")
|
||||
|
||||
|
||||
def smoke_node_profile_filter_registration() -> None:
|
||||
required_nodes = [
|
||||
"SxCPGenerationProfile",
|
||||
@@ -2120,6 +2167,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("node_camera_registration", smoke_node_camera_registration),
|
||||
("node_route_config_registration", smoke_node_route_config_registration),
|
||||
("node_character_registration", smoke_node_character_registration),
|
||||
("node_hardcore_position_registration", smoke_node_hardcore_position_registration),
|
||||
("node_profile_filter_registration", smoke_node_profile_filter_registration),
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user