| from dataclasses import fields | |
| from telltale.agents.profiles import AGENT_PROFILES, DEFAULT_FINAL_BOSS_ID, get_agent_profile | |
| def test_at_least_eight_profiles_exist(): | |
| assert len(AGENT_PROFILES) >= 8 | |
| def test_agent_ids_are_unique(): | |
| ids = [profile.agent_id for profile in AGENT_PROFILES] | |
| assert len(ids) == len(set(ids)) | |
| def test_every_profile_has_required_descriptive_fields(): | |
| required = { | |
| "agent_id", | |
| "name", | |
| "floor_min", | |
| "floor_max", | |
| "can_be_boss", | |
| "character_summary", | |
| "poker_style", | |
| "dialogue_style", | |
| "honesty_style", | |
| "speech_style", | |
| "voice_id", | |
| } | |
| for profile in AGENT_PROFILES: | |
| for field_name in required: | |
| value = getattr(profile, field_name) | |
| if field_name == "can_be_boss": | |
| assert isinstance(value, bool) | |
| else: | |
| assert value | |
| def test_teddy_kgb_exists_and_can_be_boss(): | |
| teddy = get_agent_profile(DEFAULT_FINAL_BOSS_ID) | |
| assert teddy.name == "Teddy KGB" | |
| assert teddy.can_be_boss | |
| def test_every_profile_has_speech_style_and_voice_id(): | |
| for profile in AGENT_PROFILES: | |
| assert profile.speech_style | |
| assert profile.voice_id | |
| def test_profiles_do_not_expose_numeric_personality_sliders(): | |
| banned = {"base_skill", "risk_tolerance", "bluff_frequency", "aggression", "looseness"} | |
| field_names = {field.name for field in fields(type(AGENT_PROFILES[0]))} | |
| assert field_names.isdisjoint(banned) | |