mirror of
https://github.com/MarioSpore/Grinch-AP.git
synced 2025-10-21 20:21:32 -06:00

* Minecraft: rewrite to modern AP standards * Fix gitignore to not try to ignore the entire minecraft world * minecraft: clean up MC-specific tests * minecraft: use pkgutil instead of open * minecraft: ship as apworld * mc: update region to new api * Increase upper limit on advancement and egg shard goals * mc: reduce egg shard count by 5 for structure compasses * Minecraft: add more tests Ensures data loading works; tests beatability with various options at their max setting; new tests for 1.19 advancements * test improvements * mc: typing and imports cleanup * parens * mc: condense filler item code and override get_filler_item_name
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
from . import MCTestBase
|
|
from ..Constants import region_info
|
|
from ..Options import minecraft_options
|
|
|
|
from BaseClasses import ItemClassification
|
|
|
|
class AdvancementTestBase(MCTestBase):
|
|
options = {
|
|
"advancement_goal": minecraft_options["advancement_goal"].range_end
|
|
}
|
|
# beatability test implicit
|
|
|
|
class ShardTestBase(MCTestBase):
|
|
options = {
|
|
"egg_shards_required": minecraft_options["egg_shards_required"].range_end,
|
|
"egg_shards_available": minecraft_options["egg_shards_available"].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": 0
|
|
}
|
|
|
|
# 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": 100
|
|
}
|
|
|
|
# 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
|