core: fix item/location descriptions test (#2450)

This commit is contained in:
el-u 2023-11-15 07:26:10 +01:00 committed by GitHub
parent 41b6aef23c
commit 2af5410301
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 21 deletions

View File

@ -333,24 +333,3 @@ class WorldTestBase(unittest.TestCase):
placed_items = [loc.item for loc in self.multiworld.get_locations() if loc.item and loc.item.code]
self.assertLessEqual(len(self.multiworld.itempool), len(placed_items),
"Unplaced Items remaining in itempool")
def test_descriptions_have_valid_names(self):
"""Ensure all item and location descriptions match a name of the corresponding type"""
if not (self.run_default_tests and self.constructed):
return
with self.subTest("Game", game=self.game):
with self.subTest("Items"):
world = self.multiworld.worlds[1]
valid_names = world.item_names.union(world.item_name_groups)
for name in world.item_descriptions.keys():
with self.subTest("Name should be valid", name=name):
self.assertIn(name, valid_names,
"""All item descriptions must match defined item names""")
with self.subTest("Locations"):
world = self.multiworld.worlds[1]
valid_names = world.location_names.union(world.location_name_groups)
for name in world.location_descriptions.keys():
with self.subTest("Name should be valid", name=name):
self.assertIn(name, valid_names,
"""All item descriptions must match defined item names""")

View File

@ -60,3 +60,12 @@ class TestBase(unittest.TestCase):
multiworld = setup_solo_multiworld(world_type)
for item in multiworld.itempool:
self.assertIn(item.name, world_type.item_name_to_id)
def test_item_descriptions_have_valid_names(self):
"""Ensure all item descriptions match an item name or item group name"""
for game_name, world_type in AutoWorldRegister.world_types.items():
valid_names = world_type.item_names.union(world_type.item_name_groups)
for name in world_type.item_descriptions:
with self.subTest("Name should be valid", game=game_name, item=name):
self.assertIn(name, valid_names,
"All item descriptions must match defined item names")

View File

@ -66,3 +66,12 @@ class TestBase(unittest.TestCase):
for location in locations:
self.assertIn(location, world_type.location_name_to_id)
self.assertNotIn(group_name, world_type.location_name_to_id)
def test_location_descriptions_have_valid_names(self):
"""Ensure all location descriptions match a location name or location group name"""
for game_name, world_type in AutoWorldRegister.world_types.items():
valid_names = world_type.location_names.union(world_type.location_name_groups)
for name in world_type.location_descriptions:
with self.subTest("Name should be valid", game=game_name, location=name):
self.assertIn(name, valid_names,
"All location descriptions must match defined location names")