 62942704bd
			
		
	
	62942704bd
	
	
	
		
			
			* This feature is just broken lol * simplify * mypy * Expand the unit test for forbidden doors
		
			
				
	
	
		
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from typing import cast
 | |
| 
 | |
| from .. import WitnessWorld
 | |
| from ..test import WitnessMultiworldTestBase, WitnessTestBase
 | |
| 
 | |
| 
 | |
| class TestIndividualDoors(WitnessTestBase):
 | |
|     options = {
 | |
|         "shuffle_doors": "doors",
 | |
|         "door_groupings": "off",
 | |
|     }
 | |
| 
 | |
|     def test_swamp_laser_shortcut(self) -> None:
 | |
|         """
 | |
|         Test that Door Shuffle grants early access to Swamp Laser from the back shortcut.
 | |
|         """
 | |
| 
 | |
|         self.assertTrue(self.get_items_by_name("Swamp Laser Shortcut (Door)"))
 | |
| 
 | |
|         self.assertAccessDependency(
 | |
|             ["Swamp Laser Panel"],
 | |
|             [
 | |
|                 ["Swamp Laser Shortcut (Door)"],
 | |
|                 ["Swamp Red Underwater Exit (Door)"],
 | |
|             ],
 | |
|             only_check_listed=True,
 | |
|         )
 | |
| 
 | |
| 
 | |
| class TestForbiddenDoors(WitnessMultiworldTestBase):
 | |
|     options_per_world = [
 | |
|         {
 | |
|             "early_caves": "off",
 | |
|         },
 | |
|         {
 | |
|             "early_caves": "add_to_pool",
 | |
|         },
 | |
|         {
 | |
|             "early_caves": "add_to_pool",
 | |
|             "door_groupings": "regional",
 | |
|         },
 | |
|     ]
 | |
| 
 | |
|     common_options = {
 | |
|         "shuffle_doors": "panels",
 | |
|         "shuffle_postgame": True,
 | |
|     }
 | |
| 
 | |
|     def test_forbidden_doors(self) -> None:
 | |
|         with self.subTest("Test that Caves Mountain Shortcut (Panel) exists if Early Caves is off"):
 | |
|             self.assertTrue(
 | |
|                 self.get_items_by_name("Caves Mountain Shortcut (Panel)", 1),
 | |
|                 "Caves Mountain Shortcut (Panel) should exist in panels shuffle, but it didn't."
 | |
|             )
 | |
| 
 | |
|         with self.subTest("Test that Caves Mountain Shortcut (Panel) doesn't exist if Early Caves is start_to_pool"):
 | |
|             self.assertFalse(
 | |
|                 self.get_items_by_name("Caves Mountain Shortcut (Panel)", 2),
 | |
|                 "Caves Mountain Shortcut (Panel) should be removed when Early Caves is enabled, but it still exists."
 | |
|             )
 | |
| 
 | |
|         with self.subTest("Test that slot data is set up correctly for a panels seed with Early Caves"):
 | |
|             slot_data = cast(WitnessWorld, self.multiworld.worlds[3])._get_slot_data()
 | |
| 
 | |
|             self.assertIn(
 | |
|                 WitnessWorld.item_name_to_id["Caves Panels"],
 | |
|                 slot_data["door_items_in_the_pool"],
 | |
|                 'Caves Panels should still exist in slot_data under "door_items_in_the_pool".'
 | |
|             )
 | |
| 
 | |
|             self.assertIn(
 | |
|                 0x021D7,
 | |
|                 slot_data["item_id_to_door_hexes"][WitnessWorld.item_name_to_id["Caves Panels"]],
 | |
|                 "Caves Panels should still contain Caves Mountain Shortcut Panel as a door they unlock.",
 | |
|             )
 | |
| 
 | |
|             self.assertIn(
 | |
|                 0x021D7,
 | |
|                 slot_data["doors_that_shouldnt_be_locked"],
 | |
|                 "Caves Mountain Shortcut Panel should be marked as \"shouldn't be locked\".",
 | |
|             )
 |