36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			36 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from BaseClasses import CollectionState | ||
|  | from Fill import distribute_items_restrictive | ||
|  | from . import MessengerTestBase | ||
|  | from .. import MessengerWorld | ||
|  | from ..options import Logic | ||
|  | 
 | ||
|  | 
 | ||
|  | class LimitedMovementTest(MessengerTestBase): | ||
|  |     options = { | ||
|  |         "limited_movement": "true", | ||
|  |         "shuffle_shards": "true", | ||
|  |     } | ||
|  | 
 | ||
|  |     @property | ||
|  |     def run_default_tests(self) -> bool: | ||
|  |         # This test base fails reachability tests. Not sure if the core tests should change to support that | ||
|  |         return False | ||
|  | 
 | ||
|  |     def test_options(self) -> None: | ||
|  |         """Tests that options were correctly changed.""" | ||
|  |         assert isinstance(self.multiworld.worlds[self.player], MessengerWorld) | ||
|  |         self.assertEqual(Logic.option_hard, self.world.options.logic_level) | ||
|  | 
 | ||
|  | 
 | ||
|  | class EarlyMeditationTest(MessengerTestBase): | ||
|  |     options = { | ||
|  |         "early_meditation": "true", | ||
|  |     } | ||
|  | 
 | ||
|  |     def test_option(self) -> None: | ||
|  |         """Checks that Meditation gets placed early""" | ||
|  |         distribute_items_restrictive(self.multiworld) | ||
|  |         sphere1 = self.multiworld.get_reachable_locations(CollectionState(self.multiworld)) | ||
|  |         items = [loc.item.name for loc in sphere1] | ||
|  |         self.assertIn("Meditation", items) |