Cover Krea action POV smoke routes
This commit is contained in:
@@ -387,6 +387,32 @@ def smoke_hardcore_category_routes() -> None:
|
||||
_expect_formatter_outputs(row, name, target="single")
|
||||
|
||||
|
||||
def smoke_krea_close_foreplay_route() -> None:
|
||||
row = _prompt_row(
|
||||
name="krea_close_foreplay_route",
|
||||
category="Hardcore sexual poses",
|
||||
subcategory="Foreplay and teasing",
|
||||
seed=3401,
|
||||
character_cast=_character_cast(),
|
||||
women_count=1,
|
||||
men_count=1,
|
||||
hardcore_position_config=_action_filter("foreplay_only"),
|
||||
)
|
||||
_expect_custom_row(row, "krea_close_foreplay_route")
|
||||
krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(row), target="single")
|
||||
prompt = _expect_text("krea_close_foreplay_route.krea_prompt", krea.get("krea_prompt"), 40)
|
||||
lower = prompt.lower()
|
||||
_expect("metadata" in krea.get("method", ""), "close foreplay route did not use metadata")
|
||||
_expect("role graph:" not in lower, "close foreplay leaked raw role label")
|
||||
_expect("foreplay action:" not in lower, "close foreplay leaked raw item label")
|
||||
_expect("on against" not in lower, "close foreplay kept invalid surface grammar")
|
||||
_expect(
|
||||
any(term in lower for term in ("clothing", "hands", "kiss", "bodies press", "body contact")),
|
||||
"close foreplay lost close-contact action wording",
|
||||
)
|
||||
_expect_formatter_outputs(row, "krea_close_foreplay_route", target="single")
|
||||
|
||||
|
||||
def _insta_options(**overrides: Any) -> str:
|
||||
options = pb.build_insta_of_options_json(
|
||||
softcore_cast="same_as_hardcore",
|
||||
@@ -553,6 +579,48 @@ def smoke_pov_camera_scene() -> None:
|
||||
_expect("Camera:" not in prompt, "Krea POV prompt should not emit normal third-person camera directive")
|
||||
|
||||
|
||||
def smoke_krea_pov_penetration_route() -> None:
|
||||
pair = pb.build_insta_of_pair(
|
||||
row_number=1,
|
||||
start_index=1,
|
||||
seed=3411,
|
||||
ethnicity="any",
|
||||
figure="random",
|
||||
no_plus_women=False,
|
||||
no_black=False,
|
||||
trigger=Trigger,
|
||||
prepend_trigger_to_prompt=True,
|
||||
options_json=_insta_options(
|
||||
softcore_camera_mode="from_camera_config",
|
||||
hardcore_camera_mode="from_camera_config",
|
||||
camera_detail="compact",
|
||||
),
|
||||
character_cast=_character_cast(pov_man=True),
|
||||
hardcore_position_config=_action_filter("penetration_only"),
|
||||
location_config=_coworking_location_config(),
|
||||
hardcore_camera_config=_orbit_camera(
|
||||
horizontal_angle=45,
|
||||
vertical_angle=0,
|
||||
zoom=5.5,
|
||||
subject_focus="action",
|
||||
),
|
||||
)
|
||||
_expect_pair(pair, "krea_pov_penetration_route")
|
||||
hard_row = pair.get("hardcore_row") or {}
|
||||
_expect("Man A" in (hard_row.get("pov_character_labels") or []), "POV penetration hard row lost Man A POV label")
|
||||
_expect(not hard_row.get("camera_directive"), "POV penetration should suppress normal camera directive")
|
||||
krea = krea_formatter.format_krea2_prompt("", metadata_json=_json(pair), target="hardcore")
|
||||
prompt = _expect_text("krea_pov_penetration_route.krea_prompt", krea.get("krea_prompt"), 60)
|
||||
lower = prompt.lower()
|
||||
_expect("metadata" in krea.get("method", ""), "POV penetration route did not use metadata")
|
||||
_expect("viewer" in lower and "first-person" in lower, "POV penetration lost first-person wording")
|
||||
_expect("penetrates" in lower or "penetration" in lower, "POV penetration lost penetration action wording")
|
||||
_expect("woman" in lower and "thigh" in lower, "POV penetration lost body-position anchors")
|
||||
_expect("camera:" not in prompt, "POV penetration emitted normal third-person camera directive")
|
||||
_expect("role graph:" not in lower and "sexual scene:" not in lower, "POV penetration leaked raw prompt labels")
|
||||
_expect("composition. explicit" in lower, "POV penetration composition sentence should keep punctuation before style suffix")
|
||||
|
||||
|
||||
def smoke_no_expression_fallback() -> None:
|
||||
cast = pb.build_character_slot_json(
|
||||
subject_type="woman",
|
||||
@@ -584,10 +652,12 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("camera_scene_single", smoke_camera_scene_single),
|
||||
("config_route_location_theme", smoke_config_route_location_theme),
|
||||
("hardcore_category_routes", smoke_hardcore_category_routes),
|
||||
("krea_close_foreplay_route", smoke_krea_close_foreplay_route),
|
||||
("insta_pair_same_cast", smoke_insta_pair),
|
||||
("insta_pair_pov_man", smoke_insta_pair_pov),
|
||||
("insta_pair_camera_split", smoke_insta_pair_camera_split),
|
||||
("pov_camera_scene", smoke_pov_camera_scene),
|
||||
("krea_pov_penetration_route", smoke_krea_pov_penetration_route),
|
||||
("expression_disabled", smoke_no_expression_fallback),
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user