| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | from . import SVTestBase | 
					
						
							|  |  |  | from .. import options | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestBackpackVanilla(SVTestBase): | 
					
						
							|  |  |  |     options = {options.BackpackProgression.internal_name: options.BackpackProgression.option_vanilla} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |     def test_no_backpack(self): | 
					
						
							|  |  |  |         with self.subTest("no items"): | 
					
						
							|  |  |  |             item_names = {item.name for item in self.multiworld.get_items()} | 
					
						
							|  |  |  |             self.assertNotIn("Progressive Backpack", item_names) | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |         with self.subTest("no locations"): | 
					
						
							|  |  |  |             location_names = {location.name for location in self.multiworld.get_locations()} | 
					
						
							|  |  |  |             self.assertNotIn("Large Pack", location_names) | 
					
						
							|  |  |  |             self.assertNotIn("Deluxe Pack", location_names) | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestBackpackProgressive(SVTestBase): | 
					
						
							|  |  |  |     options = {options.BackpackProgression.internal_name: options.BackpackProgression.option_progressive} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |     def test_backpack(self): | 
					
						
							|  |  |  |         with self.subTest(check="has items"): | 
					
						
							|  |  |  |             item_names = [item.name for item in self.multiworld.get_items()] | 
					
						
							|  |  |  |             self.assertEqual(item_names.count("Progressive Backpack"), 2) | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |         with self.subTest(check="has locations"): | 
					
						
							|  |  |  |             location_names = {location.name for location in self.multiworld.get_locations()} | 
					
						
							|  |  |  |             self.assertIn("Large Pack", location_names) | 
					
						
							|  |  |  |             self.assertIn("Deluxe Pack", location_names) | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  | class TestBackpackEarlyProgressive(TestBackpackProgressive): | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  |     options = {options.BackpackProgression.internal_name: options.BackpackProgression.option_early_progressive} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |     @property | 
					
						
							|  |  |  |     def run_default_tests(self) -> bool: | 
					
						
							|  |  |  |         # EarlyProgressive is default | 
					
						
							|  |  |  |         return False | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |     def test_backpack(self): | 
					
						
							|  |  |  |         super().test_backpack() | 
					
						
							| 
									
										
										
										
											2023-07-24 19:52:15 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-28 00:18:33 +02:00
										 |  |  |         with self.subTest(check="is early"): | 
					
						
							|  |  |  |             self.assertIn("Progressive Backpack", self.multiworld.early_items[1]) |