Extract Insta option policy
This commit is contained in:
@@ -627,6 +627,61 @@ def _insta_options(**overrides: Any) -> str:
|
||||
return _json(data)
|
||||
|
||||
|
||||
def smoke_pair_options_policy() -> None:
|
||||
_expect(
|
||||
pb.INSTA_OF_SOFTCORE_OUTFITS is pb.pair_options.INSTA_OF_SOFTCORE_OUTFITS,
|
||||
"prompt_builder should delegate Insta/OF softcore outfit policy to pair_options",
|
||||
)
|
||||
options = json.loads(
|
||||
pb.build_insta_of_options_json(
|
||||
softcore_expression_enabled="false",
|
||||
hardcore_expression_enabled="0",
|
||||
softcore_expression_intensity=1.4,
|
||||
hardcore_expression_intensity=-0.4,
|
||||
hardcore_detail_density="invalid",
|
||||
)
|
||||
)
|
||||
_expect(options["softcore_expression_enabled"] is False, "softcore expression enabled should normalize false strings")
|
||||
_expect(options["hardcore_expression_enabled"] is False, "hardcore expression enabled should normalize false strings")
|
||||
_expect(options["softcore_expression_intensity"] == 1.0, "softcore expression intensity should clamp high values")
|
||||
_expect(options["hardcore_expression_intensity"] == 0.0, "hardcore expression intensity should clamp low values")
|
||||
_expect(options["hardcore_detail_density"] == "balanced", "invalid hardcore detail density should fallback")
|
||||
|
||||
parsed = pb._parse_insta_of_options(
|
||||
{
|
||||
"softcore_cast": "bad",
|
||||
"hardcore_cast": "bad",
|
||||
"softcore_camera_mode": "bad",
|
||||
"hardcore_camera_mode": "bad",
|
||||
"camera_detail": "bad",
|
||||
"hardcore_detail_density": "bad",
|
||||
"hardcore_women_count": "20",
|
||||
"hardcore_men_count": "-3",
|
||||
}
|
||||
)
|
||||
_expect(parsed["softcore_cast"] == "solo", "invalid softcore cast should fallback")
|
||||
_expect(parsed["hardcore_cast"] == "use_counts", "invalid hardcore cast should fallback")
|
||||
_expect(parsed["softcore_camera_mode"] == "handheld_selfie", "invalid softcore camera should fallback")
|
||||
_expect(parsed["hardcore_camera_mode"] == "from_camera_config", "invalid hardcore camera should fallback")
|
||||
_expect(parsed["camera_detail"] == "from_camera_config", "invalid camera detail should fallback")
|
||||
_expect(parsed["hardcore_detail_density"] == "balanced", "invalid hardcore density should fallback on parse")
|
||||
_expect(parsed["hardcore_women_count"] == 12, "women count should clamp to max")
|
||||
_expect(parsed["hardcore_men_count"] == 0, "men count should clamp to min")
|
||||
|
||||
_expect(pb.character_softcore_outfit_values("partner_man"), "partner man softcore outfit pool should not be empty")
|
||||
_expect(
|
||||
pb.character_softcore_outfit_values("custom", "one; two\nthree") == ["one", "two", "three"],
|
||||
"custom softcore outfits should split stable free-text lists",
|
||||
)
|
||||
_expect("fully nude" in pb.character_hardcore_clothing_values("fully_nude"), "fully nude clothing state should be exposed")
|
||||
_expect(
|
||||
pb.character_hardcore_clothing_values("custom", "bare; outfit pushed aside") == ["bare", "outfit pushed aside"],
|
||||
"custom hardcore clothing should split stable free-text lists",
|
||||
)
|
||||
_expect(pb._insta_of_hardcore_counts({"hardcore_cast": "threesome"}) == (2, 1), "threesome count policy changed")
|
||||
_expect(pb._insta_of_softcore_category("social_tease") == ("Casual clothes", "Casual clothes / Smart casual"), "softcore category mapping changed")
|
||||
|
||||
|
||||
def _expect_pair(pair: dict[str, Any], name: str) -> None:
|
||||
_expect(pair.get("mode") == "Insta/OF", f"{name}.mode should be Insta/OF")
|
||||
_expect_row_base(pair.get("softcore_row") or {}, f"{name}.softcore_row")
|
||||
@@ -2314,6 +2369,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("category_library_route", smoke_category_library_route),
|
||||
("hardcore_category_routes", smoke_hardcore_category_routes),
|
||||
("krea_close_foreplay_route", smoke_krea_close_foreplay_route),
|
||||
("pair_options_policy", smoke_pair_options_policy),
|
||||
("insta_pair_same_cast", smoke_insta_pair),
|
||||
("krea_pair_clothing_state", smoke_krea_pair_clothing_state),
|
||||
("insta_pair_pov_man", smoke_insta_pair_pov),
|
||||
|
||||
Reference in New Issue
Block a user