DLC Quest: Fix code structure, typos, poor code quality (#2066)
"Added a bunch of tests to make sure I don't break anything during refactoring Huge cleanup in the Regions file, extract methods, remove code duplicate, fix typos, fix variable naming conventions, etc. Small cleanup in other places, minor stuff just what was needed for Regions"
This commit is contained in:
130
worlds/dlcquest/test/TestItemShuffle.py
Normal file
130
worlds/dlcquest/test/TestItemShuffle.py
Normal file
@@ -0,0 +1,130 @@
|
||||
from . import DLCQuestTestBase
|
||||
from .. import Options
|
||||
|
||||
sword = "Sword"
|
||||
gun = "Gun"
|
||||
wooden_sword = "Wooden Sword"
|
||||
pickaxe = "Pickaxe"
|
||||
humble_bindle = "Humble Indie Bindle"
|
||||
box_supplies = "Box of Various Supplies"
|
||||
items = [sword, gun, wooden_sword, pickaxe, humble_bindle, box_supplies]
|
||||
|
||||
important_pack = "Incredibly Important Pack"
|
||||
|
||||
|
||||
class TestItemShuffle(DLCQuestTestBase):
|
||||
options = {Options.ItemShuffle.internal_name: Options.ItemShuffle.option_shuffled,
|
||||
Options.Campaign.internal_name: Options.Campaign.option_both}
|
||||
|
||||
def test_items_in_pool(self):
|
||||
item_names = {item.name for item in self.multiworld.get_items()}
|
||||
for item in items:
|
||||
with self.subTest(f"{item}"):
|
||||
self.assertIn(item, item_names)
|
||||
|
||||
def test_item_locations_in_pool(self):
|
||||
location_names = {location.name for location in self.multiworld.get_locations()}
|
||||
for item_location in items:
|
||||
with self.subTest(f"{item_location}"):
|
||||
self.assertIn(item_location, location_names)
|
||||
|
||||
def test_sword_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(sword))
|
||||
movement_pack = self.multiworld.create_item("Movement Pack", self.player)
|
||||
self.collect(movement_pack)
|
||||
self.assertFalse(self.can_reach_location(sword))
|
||||
time_pack = self.multiworld.create_item("Time is Money Pack", self.player)
|
||||
self.collect(time_pack)
|
||||
self.assertTrue(self.can_reach_location(sword))
|
||||
|
||||
def test_gun_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(gun))
|
||||
movement_pack = self.multiworld.create_item("Movement Pack", self.player)
|
||||
self.collect(movement_pack)
|
||||
self.assertFalse(self.can_reach_location(gun))
|
||||
sword_item = self.multiworld.create_item(sword, self.player)
|
||||
self.collect(sword_item)
|
||||
self.assertFalse(self.can_reach_location(gun))
|
||||
gun_pack = self.multiworld.create_item("Gun Pack", self.player)
|
||||
self.collect(gun_pack)
|
||||
self.assertTrue(self.can_reach_location(gun))
|
||||
|
||||
def test_wooden_sword_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(wooden_sword))
|
||||
important_pack_item = self.multiworld.create_item(important_pack, self.player)
|
||||
self.collect(important_pack_item)
|
||||
self.assertTrue(self.can_reach_location(wooden_sword))
|
||||
|
||||
def test_bindle_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
wooden_sword_item = self.multiworld.create_item(wooden_sword, self.player)
|
||||
self.collect(wooden_sword_item)
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
plants_pack = self.multiworld.create_item("Harmless Plants Pack", self.player)
|
||||
self.collect(plants_pack)
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
wall_jump_pack = self.multiworld.create_item("Wall Jump Pack", self.player)
|
||||
self.collect(wall_jump_pack)
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
name_change_pack = self.multiworld.create_item("Name Change Pack", self.player)
|
||||
self.collect(name_change_pack)
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
cut_content_pack = self.multiworld.create_item("Cut Content Pack", self.player)
|
||||
self.collect(cut_content_pack)
|
||||
self.assertFalse(self.can_reach_location(humble_bindle))
|
||||
box_supplies_item = self.multiworld.create_item(box_supplies, self.player)
|
||||
self.collect(box_supplies_item)
|
||||
self.assertTrue(self.can_reach_location(humble_bindle))
|
||||
|
||||
def test_box_supplies_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(box_supplies))
|
||||
wooden_sword_item = self.multiworld.create_item(wooden_sword, self.player)
|
||||
self.collect(wooden_sword_item)
|
||||
self.assertFalse(self.can_reach_location(box_supplies))
|
||||
plants_pack = self.multiworld.create_item("Harmless Plants Pack", self.player)
|
||||
self.collect(plants_pack)
|
||||
self.assertFalse(self.can_reach_location(box_supplies))
|
||||
wall_jump_pack = self.multiworld.create_item("Wall Jump Pack", self.player)
|
||||
self.collect(wall_jump_pack)
|
||||
self.assertFalse(self.can_reach_location(box_supplies))
|
||||
name_change_pack = self.multiworld.create_item("Name Change Pack", self.player)
|
||||
self.collect(name_change_pack)
|
||||
self.assertFalse(self.can_reach_location(box_supplies))
|
||||
cut_content_pack = self.multiworld.create_item("Cut Content Pack", self.player)
|
||||
self.collect(cut_content_pack)
|
||||
self.assertTrue(self.can_reach_location(box_supplies))
|
||||
|
||||
def test_pickaxe_location_has_correct_rules(self):
|
||||
self.assertFalse(self.can_reach_location(pickaxe))
|
||||
wooden_sword_item = self.multiworld.create_item(wooden_sword, self.player)
|
||||
self.collect(wooden_sword_item)
|
||||
self.assertFalse(self.can_reach_location(pickaxe))
|
||||
plants_pack = self.multiworld.create_item("Harmless Plants Pack", self.player)
|
||||
self.collect(plants_pack)
|
||||
self.assertFalse(self.can_reach_location(pickaxe))
|
||||
wall_jump_pack = self.multiworld.create_item("Wall Jump Pack", self.player)
|
||||
self.collect(wall_jump_pack)
|
||||
self.assertFalse(self.can_reach_location(pickaxe))
|
||||
name_change_pack = self.multiworld.create_item("Name Change Pack", self.player)
|
||||
self.collect(name_change_pack)
|
||||
self.assertFalse(self.can_reach_location(pickaxe))
|
||||
bindle_item = self.multiworld.create_item("Humble Indie Bindle", self.player)
|
||||
self.collect(bindle_item)
|
||||
self.assertTrue(self.can_reach_location(pickaxe))
|
||||
|
||||
|
||||
class TestNoItemShuffle(DLCQuestTestBase):
|
||||
options = {Options.ItemShuffle.internal_name: Options.ItemShuffle.option_disabled,
|
||||
Options.Campaign.internal_name: Options.Campaign.option_both}
|
||||
|
||||
def test_items_not_in_pool(self):
|
||||
item_names = {item.name for item in self.multiworld.get_items()}
|
||||
for item in items:
|
||||
with self.subTest(f"{item}"):
|
||||
self.assertNotIn(item, item_names)
|
||||
|
||||
def test_item_locations_not_in_pool(self):
|
||||
location_names = {location.name for location in self.multiworld.get_locations()}
|
||||
for item_location in items:
|
||||
with self.subTest(f"{item_location}"):
|
||||
self.assertNotIn(item_location, location_names)
|
||||
Reference in New Issue
Block a user