Extract character config policy
This commit is contained in:
@@ -24,6 +24,7 @@ if str(ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(ROOT))
|
||||
|
||||
import caption_naturalizer # noqa: E402
|
||||
import character_config # noqa: E402
|
||||
import category_cast_config # noqa: E402
|
||||
import category_library # noqa: E402
|
||||
import filter_config # noqa: E402
|
||||
@@ -662,6 +663,54 @@ def smoke_filter_config_policy() -> None:
|
||||
_expect(pb.normalize_ethnicity_filter("random", "any", allow_random=False) == "any", "Ethnicity default normalization changed")
|
||||
|
||||
|
||||
def smoke_character_config_policy() -> None:
|
||||
_expect(pb.CHARACTER_LABEL_CHOICES is character_config.CHARACTER_LABEL_CHOICES, "Prompt builder character choices are not delegated")
|
||||
_expect("21-year-old adult" in character_config.character_age_choices(), "Character age choices lost adult ages")
|
||||
_expect("fat" in character_config.character_man_body_choices(), "Man body pool lost fat option")
|
||||
_expect("platinum_blonde" in character_config.character_hair_color_choices(), "Hair color choices lost platinum blonde")
|
||||
|
||||
traits = json.loads(
|
||||
pb.build_characteristics_config_json(
|
||||
axis="bodies",
|
||||
selected_values=["slim", "bad value", "slim", "fat"],
|
||||
combine_mode="replace_axis",
|
||||
)
|
||||
)
|
||||
_expect(traits.get("bodies") == ["slim", "fat"], "Character body trait normalization changed")
|
||||
merged_traits = json.loads(
|
||||
character_config.build_characteristics_config_json(
|
||||
characteristics=traits,
|
||||
axis="eyes",
|
||||
selected_values=["blue", "gray-brown", "blue"],
|
||||
combine_mode="add_to_axis",
|
||||
)
|
||||
)
|
||||
_expect(merged_traits.get("bodies") == ["slim", "fat"], "Character trait merge lost existing axis")
|
||||
_expect(merged_traits.get("eyes") == ["blue", "gray_brown"], "Character eye trait normalization changed")
|
||||
_expect(pb._characteristic_choice({"ages": ["21-year-old adult"]}, "ages", random.Random(1)) == "21-year-old adult", "Trait choice changed")
|
||||
|
||||
hair = json.loads(
|
||||
pb.build_hair_config_json(
|
||||
axis="color",
|
||||
selected_values=["platinum blonde", "bad", "dark-brown"],
|
||||
combine_mode="replace_axis",
|
||||
)
|
||||
)
|
||||
_expect(hair.get("colors") == ["platinum_blonde", "dark_brown"], "Hair color normalization changed")
|
||||
hair = json.loads(
|
||||
character_config.build_hair_config_json(
|
||||
hair_config=hair,
|
||||
axis="style",
|
||||
selected_values=["messy bun", "straight"],
|
||||
combine_mode="add_to_axis",
|
||||
)
|
||||
)
|
||||
_expect(hair.get("styles") == ["messy_bun", "straight"], "Hair style config merge changed")
|
||||
_expect(pb._hair_phrase_from_parts("platinum_blonde", "long", "messy_bun") == "long platinum-blonde hair in a messy bun", "Hair phrase helper changed")
|
||||
_expect(character_config.normalize_presence_mode("pov", "woman") == "visible", "POV presence should stay man-only")
|
||||
_expect(character_config.normalize_slot_seed(0xFFFFFFFF + 99) == 0xFFFFFFFF, "Slot seed clamp changed")
|
||||
|
||||
|
||||
def smoke_hardcore_position_config_policy() -> None:
|
||||
_expect(
|
||||
pb.HARDCORE_POSITION_FAMILY_CHOICES is hardcore_position_config.HARDCORE_POSITION_FAMILY_CHOICES,
|
||||
@@ -2630,6 +2679,7 @@ SMOKE_CASES: list[tuple[str, Callable[[], None]]] = [
|
||||
("category_cast_config_policy", smoke_category_cast_config_policy),
|
||||
("generation_profile_config_policy", smoke_generation_profile_config_policy),
|
||||
("filter_config_policy", smoke_filter_config_policy),
|
||||
("character_config_policy", smoke_character_config_policy),
|
||||
("hardcore_position_config_policy", smoke_hardcore_position_config_policy),
|
||||
("category_library_route", smoke_category_library_route),
|
||||
("hardcore_category_routes", smoke_hardcore_category_routes),
|
||||
|
||||
Reference in New Issue
Block a user