50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			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
 |