Archipelago/worlds/minecraft/test/TestOptions.py

50 lines
1.5 KiB
Python

from . import MCTestBase
from ..Constants import region_info
from .. import Options
from BaseClasses import ItemClassification
class AdvancementTestBase(MCTestBase):
options = {
"advancement_goal": Options.AdvancementGoal.range_end
}
# beatability test implicit
class ShardTestBase(MCTestBase):
options = {
"egg_shards_required": Options.EggShardsRequired.range_end,
"egg_shards_available": Options.EggShardsAvailable.range_end
}
# check that itempool is not overfilled with shards
def test_itempool(self):
assert len(self.multiworld.get_unfilled_locations()) == len(self.multiworld.itempool)
class CompassTestBase(MCTestBase):
def test_compasses_in_pool(self):
structures = [x[1] for x in region_info["default_connections"]]
itempool_str = {item.name for item in self.multiworld.itempool}
for struct in structures:
assert f"Structure Compass ({struct})" in itempool_str
class NoBeeTestBase(MCTestBase):
options = {
"bee_traps": Options.BeeTraps.range_start
}
# With no bees, there are no traps in the pool
def test_bees(self):
for item in self.multiworld.itempool:
assert item.classification != ItemClassification.trap
class AllBeeTestBase(MCTestBase):
options = {
"bee_traps": Options.BeeTraps.range_end
}
# With max bees, there are no filler items, only bee traps
def test_bees(self):
for item in self.multiworld.itempool:
assert item.classification != ItemClassification.filler